Diff of the two buildlogs: -- --- b1/build.log 2024-01-06 15:25:09.545159194 +0000 +++ b2/build.log 2024-01-06 15:41:00.073627695 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Feb 7 09:20:12 -12 2025 -I: pbuilder-time-stamp: 1738963212 +I: Current time: Sun Jan 7 05:25:12 +14 2024 +I: pbuilder-time-stamp: 1704554712 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz] I: copying local configuration @@ -28,49 +28,81 @@ dpkg-source: info: applying py3.11_fix_unit_tests.patch I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/425219/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/4102781/tmp/hooks/D01_modify_environment starting +debug: Running on ionos11-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Jan 6 15:25 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/4102781/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/4102781/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=16 ' - DISTRIBUTION='bookworm' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="15" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.15(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=15 ' + DIRSTACK=() + DISTRIBUTION=bookworm + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='80672c460d3c472dbb7b86efe5740ce6' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='425219' - PS1='# ' - PS2='> ' + INVOCATION_ID=cd681636f214419eb2b213913f9f04da + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=4102781 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.jLaig6s8/pbuilderrc_XwkQ --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.jLaig6s8/b1 --logfile b1/build.log ironic_21.1.0-3.dsc' - SUDO_GID='111' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://85.184.249.68:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.jLaig6s8/pbuilderrc_2vbW --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.jLaig6s8/b2 --logfile b2/build.log ironic_21.1.0-3.dsc' + SUDO_GID=111 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://78.137.99.97:3128 I: uname -a - Linux ionos15-amd64 6.5.0-0.deb12.4-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.5.10-1~bpo12+1 (2023-11-23) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/Linux I: ls -l /bin total 5632 -rwxr-xr-x 1 root root 1265648 Apr 23 2023 bash @@ -128,15 +160,15 @@ -rwxr-xr-x 1 root root 52112 Sep 20 2022 readlink -rwxr-xr-x 1 root root 72752 Sep 20 2022 rm -rwxr-xr-x 1 root root 56240 Sep 20 2022 rmdir - -rwxr-xr-x 1 root root 27560 Jul 28 2023 run-parts + -rwxr-xr-x 1 root root 27560 Jul 28 23:46 run-parts -rwxr-xr-x 1 root root 126424 Jan 5 2023 sed - lrwxrwxrwx 1 root root 4 Jan 5 2023 sh -> dash + lrwxrwxrwx 1 root root 9 Jan 6 15:25 sh -> /bin/bash -rwxr-xr-x 1 root root 43888 Sep 20 2022 sleep -rwxr-xr-x 1 root root 85008 Sep 20 2022 stty -rwsr-xr-x 1 root root 72000 Mar 23 2023 su -rwxr-xr-x 1 root root 39824 Sep 20 2022 sync -rwxr-xr-x 1 root root 531984 Apr 6 2023 tar - -rwxr-xr-x 1 root root 14520 Jul 28 2023 tempfile + -rwxr-xr-x 1 root root 14520 Jul 28 23:46 tempfile -rwxr-xr-x 1 root root 109616 Sep 20 2022 touch -rwxr-xr-x 1 root root 35664 Sep 20 2022 true -rwxr-xr-x 1 root root 14568 Mar 23 2023 ulockmgr_server @@ -156,7 +188,7 @@ -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew -I: user script /srv/workspace/pbuilder/425219/tmp/hooks/D02_print_environment finished +I: user script /srv/workspace/pbuilder/4102781/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -835,7 +867,7 @@ Get: 482 http://deb.debian.org/debian bookworm/main amd64 python3-swiftclient all 1:4.1.0-2 [76.7 kB] Get: 483 http://deb.debian.org/debian bookworm/main amd64 python3-zake all 0.2.2-4 [15.4 kB] Get: 484 http://deb.debian.org/debian bookworm/main amd64 python3-tooz all 3.1.0-3 [52.3 kB] -Fetched 149 MB in 3s (58.1 MB/s) +Fetched 149 MB in 10s (14.6 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libargon2-1:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 18148 files and directories currently installed.) @@ -2375,8 +2407,8 @@ Setting up tzdata (2023c-5+deb12u1) ... Current default time zone: 'Etc/UTC' -Local time is now: Fri Feb 7 21:20:56 UTC 2025. -Universal Time is now: Fri Feb 7 21:20:56 UTC 2025. +Local time is now: Sat Jan 6 15:27:46 UTC 2024. +Universal Time is now: Sat Jan 6 15:27:46 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libdconf1:amd64 (0.40.0-4) ... @@ -2838,7 +2870,11 @@ fakeroot is already the newest version (1.31-1.2). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/ironic-21.1.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ironic_21.1.0-3_source.changes +I: user script /srv/workspace/pbuilder/4102781/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for bookworm +I: user script /srv/workspace/pbuilder/4102781/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ironic-21.1.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ironic_21.1.0-3_source.changes dpkg-buildpackage: info: source package ironic dpkg-buildpackage: info: source version 1:21.1.0-3 dpkg-buildpackage: info: source distribution unstable @@ -2958,75 +2994,64 @@ creating build/lib/ironic creating build/lib/ironic/tests creating build/lib/ironic/tests/unit -creating build/lib/ironic/tests/unit/drivers -creating build/lib/ironic/tests/unit/drivers/modules -creating build/lib/ironic/tests/unit/drivers/modules/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_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_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/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/hacking -copying ironic/hacking/checks.py -> build/lib/ironic/hacking -copying ironic/hacking/__init__.py -> build/lib/ironic/hacking +creating build/lib/ironic/tests/unit/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/drivers creating build/lib/ironic/drivers/modules -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/tests/unit/drivers/modules/ansible -copying ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/lib/ironic/tests/unit/drivers/modules/ansible -copying ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ansible -creating build/lib/ironic/drivers/modules/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/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/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_rpcapi.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_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/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/api +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 +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/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/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/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_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_history.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/conf copying ironic/conf/xclarity.py -> build/lib/ironic/conf copying ironic/conf/swift.py -> build/lib/ironic/conf @@ -3063,9 +3088,85 @@ copying ironic/conf/anaconda.py -> build/lib/ironic/conf copying ironic/conf/agent.py -> build/lib/ironic/conf copying ironic/conf/__init__.py -> build/lib/ironic/conf -creating build/lib/ironic/drivers/modules/intel_ipmi -copying ironic/drivers/modules/intel_ipmi/management.py -> build/lib/ironic/drivers/modules/intel_ipmi -copying ironic/drivers/modules/intel_ipmi/__init__.py -> build/lib/ironic/drivers/modules/intel_ipmi +creating build/lib/ironic/tests/unit/drivers +creating build/lib/ironic/tests/unit/drivers/modules +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/api/middleware +copying ironic/api/middleware/parsable_error.py -> build/lib/ironic/api/middleware +copying ironic/api/middleware/json_ext.py -> build/lib/ironic/api/middleware +copying ironic/api/middleware/auth_public_routes.py -> build/lib/ironic/api/middleware +copying ironic/api/middleware/__init__.py -> build/lib/ironic/api/middleware +creating build/lib/ironic/tests/unit/drivers/modules/network +copying ironic/tests/unit/drivers/modules/network/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules/network +copying ironic/tests/unit/drivers/modules/network/test_neutron.py -> build/lib/ironic/tests/unit/drivers/modules/network +copying ironic/tests/unit/drivers/modules/network/test_flat.py -> build/lib/ironic/tests/unit/drivers/modules/network +copying ironic/tests/unit/drivers/modules/network/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/network +copying ironic/tests/unit/drivers/modules/network/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/network +creating build/lib/ironic/tests/unit/drivers/modules/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_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_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/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/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 +copying ironic/api/wsgi.py -> build/lib/ironic/api +copying ironic/api/method.py -> build/lib/ironic/api +copying ironic/api/hooks.py -> build/lib/ironic/api +copying ironic/api/functions.py -> build/lib/ironic/api +copying ironic/api/config.py -> build/lib/ironic/api +copying ironic/api/app.py -> build/lib/ironic/api +copying ironic/api/__init__.py -> build/lib/ironic/api +creating build/lib/ironic/drivers/modules/ansible +copying ironic/drivers/modules/ansible/deploy.py -> build/lib/ironic/drivers/modules/ansible +copying ironic/drivers/modules/ansible/__init__.py -> build/lib/ironic/drivers/modules/ansible +creating build/lib/ironic/tests/functional +copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional +copying ironic/version.py -> build/lib/ironic +copying ironic/__init__.py -> 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 @@ -3080,6 +3181,48 @@ 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/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 +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_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/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 +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/inspector.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/inspect_utils.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/image_utils.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/image_cache.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/fake.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/deploy_utils.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/console_utils.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/boot_mode_utils.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/agent_power.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/agent_client.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/agent_base.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/agent.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/__init__.py -> build/lib/ironic/drivers/modules copying ironic/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 @@ -3095,25 +3238,56 @@ copying ironic/drivers/drac.py -> build/lib/ironic/drivers copying ironic/drivers/base.py -> build/lib/ironic/drivers copying ironic/drivers/__init__.py -> build/lib/ironic/drivers -copying ironic/tests/base.py -> build/lib/ironic/tests -copying ironic/tests/__init__.py -> build/lib/ironic/tests -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/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/api -copying ironic/api/wsgi.py -> build/lib/ironic/api -copying ironic/api/method.py -> build/lib/ironic/api -copying ironic/api/hooks.py -> build/lib/ironic/api -copying ironic/api/functions.py -> build/lib/ironic/api -copying ironic/api/config.py -> build/lib/ironic/api -copying ironic/api/app.py -> build/lib/ironic/api -copying ironic/api/__init__.py -> build/lib/ironic/api +creating build/lib/ironic/tests/unit/api +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_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 +copying ironic/tests/unit/api/utils.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_root.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_proxy_middleware.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_ospmiddleware.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_middleware.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_method.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_hooks.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_healthcheck.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_functions.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_audit.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_acl.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/base.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/__init__.py -> build/lib/ironic/tests/unit/api +creating build/lib/ironic/drivers/modules/intel_ipmi +copying ironic/drivers/modules/intel_ipmi/management.py -> build/lib/ironic/drivers/modules/intel_ipmi +copying ironic/drivers/modules/intel_ipmi/__init__.py -> build/lib/ironic/drivers/modules/intel_ipmi +creating build/lib/ironic/tests/unit/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/cmd +copying ironic/cmd/status.py -> build/lib/ironic/cmd +copying ironic/cmd/singleprocess.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/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 @@ -3141,68 +3315,6 @@ 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 -copying ironic/version.py -> build/lib/ironic -copying ironic/__init__.py -> build/lib/ironic -creating build/lib/ironic/tests/unit/api -creating build/lib/ironic/tests/unit/api/controllers -copying ironic/tests/unit/api/controllers/test_base.py -> build/lib/ironic/tests/unit/api/controllers -copying ironic/tests/unit/api/controllers/__init__.py -> build/lib/ironic/tests/unit/api/controllers -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/tests/unit/api/utils.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_root.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_proxy_middleware.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_ospmiddleware.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_middleware.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_method.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_hooks.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_healthcheck.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_functions.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_audit.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_acl.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/base.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/__init__.py -> build/lib/ironic/tests/unit/api -creating build/lib/ironic/tests/functional -copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional -creating build/lib/ironic/db/sqlalchemy -copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy -copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy -copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy -copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy -copying ironic/tests/unit/drivers/modules/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_inspector.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/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/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/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 @@ -3211,84 +3323,6 @@ 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/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 -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/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_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_fields.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_deployment.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_deploy_template.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_conductor.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_chassis.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_bios.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_allocation.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/__init__.py -> build/lib/ironic/tests/unit/objects -creating build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/vendor.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/raid.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/power.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/management.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/inspect.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/firmware_processor.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/console.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/common.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/boot.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/bios.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/__init__.py -> build/lib/ironic/drivers/modules/ilo -creating build/lib/ironic/tests/unit/drivers/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/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_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/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/objects copying ironic/objects/volume_target.py -> build/lib/ironic/objects copying ironic/objects/volume_connector.py -> build/lib/ironic/objects @@ -3308,14 +3342,6 @@ 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/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 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 @@ -3331,43 +3357,68 @@ 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/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/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 -creating build/lib/ironic/api/middleware -copying ironic/api/middleware/parsable_error.py -> build/lib/ironic/api/middleware -copying ironic/api/middleware/json_ext.py -> build/lib/ironic/api/middleware -copying ironic/api/middleware/auth_public_routes.py -> build/lib/ironic/api/middleware -copying ironic/api/middleware/__init__.py -> build/lib/ironic/api/middleware -creating build/lib/ironic/api/controllers/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/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/event.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/driver.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/deploy_template.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/conductor.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/collection.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/chassis.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/bios.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/allocation.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/__init__.py -> build/lib/ironic/api/controllers/v1 +creating build/lib/ironic/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/hacking +copying ironic/hacking/checks.py -> build/lib/ironic/hacking +copying ironic/hacking/__init__.py -> build/lib/ironic/hacking +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/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_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_fields.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_deployment.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_deploy_template.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_conductor.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_chassis.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_bios.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_allocation.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/__init__.py -> build/lib/ironic/tests/unit/objects +creating build/lib/ironic/drivers/modules/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/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/controllers/test_base.py -> build/lib/ironic/tests/unit/api/controllers +copying ironic/tests/unit/api/controllers/__init__.py -> build/lib/ironic/tests/unit/api/controllers +copying ironic/tests/unit/test_base.py -> build/lib/ironic/tests/unit +copying ironic/tests/unit/stubs.py -> build/lib/ironic/tests/unit +copying ironic/tests/unit/raid_constants.py -> build/lib/ironic/tests/unit +copying ironic/tests/unit/policy_fixture.py -> build/lib/ironic/tests/unit +copying ironic/tests/unit/__init__.py -> build/lib/ironic/tests/unit +creating build/lib/ironic/tests/unit/drivers/modules/storage +copying ironic/tests/unit/drivers/modules/storage/test_external.py -> build/lib/ironic/tests/unit/drivers/modules/storage +copying ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/lib/ironic/tests/unit/drivers/modules/storage +copying ironic/tests/unit/drivers/modules/storage/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/storage +creating build/lib/ironic/db/sqlalchemy +copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy +copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy +copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy +copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy 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 @@ -3404,105 +3455,90 @@ copying ironic/common/boot_devices.py -> build/lib/ironic/common copying ironic/common/args.py -> build/lib/ironic/common copying ironic/common/__init__.py -> build/lib/ironic/common -creating build/lib/ironic/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/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/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/tests/unit/db -creating build/lib/ironic/tests/unit/db/sqlalchemy -copying ironic/tests/unit/db/sqlalchemy/test_types.py -> build/lib/ironic/tests/unit/db/sqlalchemy -copying ironic/tests/unit/db/sqlalchemy/test_models.py -> build/lib/ironic/tests/unit/db/sqlalchemy -copying ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/lib/ironic/tests/unit/db/sqlalchemy -copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib/ironic/tests/unit/db/sqlalchemy -copying ironic/tests/unit/db/sqlalchemy/__init__.py -> build/lib/ironic/tests/unit/db/sqlalchemy +creating build/lib/ironic/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/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/event.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/driver.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/deploy_template.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/conductor.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/collection.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/chassis.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/bios.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/allocation.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/__init__.py -> build/lib/ironic/api/controllers/v1 creating build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/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 -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_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_history.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 -copying ironic/tests/unit/test_base.py -> build/lib/ironic/tests/unit -copying ironic/tests/unit/stubs.py -> build/lib/ironic/tests/unit -copying ironic/tests/unit/raid_constants.py -> build/lib/ironic/tests/unit -copying ironic/tests/unit/policy_fixture.py -> build/lib/ironic/tests/unit -copying ironic/tests/unit/__init__.py -> build/lib/ironic/tests/unit -creating build/lib/ironic/tests/unit/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_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/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/drivers/modules/ansible -copying ironic/drivers/modules/ansible/deploy.py -> build/lib/ironic/drivers/modules/ansible -copying ironic/drivers/modules/ansible/__init__.py -> build/lib/ironic/drivers/modules/ansible -copying ironic/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/inspector.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/cmd -copying ironic/cmd/status.py -> build/lib/ironic/cmd -copying ironic/cmd/singleprocess.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/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_rpcapi.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_deployments.py -> build/lib/ironic/tests/unit/conductor +copying ironic/tests/unit/conductor/test_cleaning.py -> build/lib/ironic/tests/unit/conductor +copying ironic/tests/unit/conductor/test_base_manager.py -> build/lib/ironic/tests/unit/conductor +copying ironic/tests/unit/conductor/test_allocations.py -> build/lib/ironic/tests/unit/conductor +copying ironic/tests/unit/conductor/mgr_utils.py -> build/lib/ironic/tests/unit/conductor +copying ironic/tests/unit/conductor/__init__.py -> build/lib/ironic/tests/unit/conductor +creating build/lib/ironic/tests/unit/drivers/modules/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 +copying ironic/tests/base.py -> build/lib/ironic/tests +copying ironic/tests/__init__.py -> build/lib/ironic/tests +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/dhcp +copying ironic/dhcp/none.py -> build/lib/ironic/dhcp +copying ironic/dhcp/neutron.py -> build/lib/ironic/dhcp +copying ironic/dhcp/dnsmasq.py -> build/lib/ironic/dhcp +copying ironic/dhcp/base.py -> build/lib/ironic/dhcp +copying ironic/dhcp/__init__.py -> build/lib/ironic/dhcp +copying ironic/tests/unit/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_inspector.py -> build/lib/ironic/tests/unit/drivers/modules +copying ironic/tests/unit/drivers/modules/test_inspect_utils.py -> build/lib/ironic/tests/unit/drivers/modules +copying ironic/tests/unit/drivers/modules/test_image_utils.py -> build/lib/ironic/tests/unit/drivers/modules +copying ironic/tests/unit/drivers/modules/test_image_cache.py -> build/lib/ironic/tests/unit/drivers/modules +copying ironic/tests/unit/drivers/modules/test_deploy_utils.py -> build/lib/ironic/tests/unit/drivers/modules +copying ironic/tests/unit/drivers/modules/test_console_utils.py -> build/lib/ironic/tests/unit/drivers/modules +copying ironic/tests/unit/drivers/modules/test_boot_mode_utils.py -> build/lib/ironic/tests/unit/drivers/modules +copying ironic/tests/unit/drivers/modules/test_agent_power.py -> build/lib/ironic/tests/unit/drivers/modules +copying ironic/tests/unit/drivers/modules/test_agent_client.py -> build/lib/ironic/tests/unit/drivers/modules +copying ironic/tests/unit/drivers/modules/test_agent_base.py -> build/lib/ironic/tests/unit/drivers/modules +copying ironic/tests/unit/drivers/modules/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules +copying ironic/tests/unit/drivers/modules/__init__.py -> build/lib/ironic/tests/unit/drivers/modules +creating build/lib/ironic/tests/unit/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 running egg_info creating ironic.egg-info writing ironic.egg-info/PKG-INFO @@ -3962,11 +3998,71 @@ !! check.warn(importable) +creating build/lib/ironic/tests/unit/drivers/modules/network/json_samples +copying ironic/tests/unit/drivers/modules/network/json_samples/network_data.json -> build/lib/ironic/tests/unit/drivers/modules/network/json_samples copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc +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/drivers/modules/boot.ipxe -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/initial_grub_cfg.template -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/ipxe_config.template -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/ks.cfg.template -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/pxe_config.template -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/pxe_grub_config.template -> build/lib/ironic/drivers/modules copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers -creating build/lib/ironic/tests/json_samples -copying ironic/tests/json_samples/network_data.json -> build/lib/ironic/tests/json_samples +copying ironic/tests/unit/api/test_acl_basic.yaml -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_rbac_legacy.yaml -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_rbac_project_scoped.yaml -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_rbac_system_scoped.yaml -> build/lib/ironic/tests/unit/api creating build/lib/ironic/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 @@ -3974,12 +4070,20 @@ 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/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/boot-fallback.ipxe -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/boot.ipxe -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ks_extra_vars.tmpl -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ks_missing_var.tmpl -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/pxe_config.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/pxe_grub_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/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 @@ -4043,79 +4147,11 @@ 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/tests/unit/drivers/boot-fallback.ipxe -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/boot.ipxe -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/ipxe_config.template -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/ks_extra_vars.tmpl -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/ks_missing_var.tmpl -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/pxe_config.template -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/pxe_grub_config.template -> build/lib/ironic/tests/unit/drivers -copying ironic/api/controllers/v1/network-data-schema.json -> build/lib/ironic/api/controllers/v1 copying ironic/common/grub_conf.template -> build/lib/ironic/common copying ironic/common/isolinux_config.template -> build/lib/ironic/common -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/drivers/modules/boot.ipxe -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/initial_grub_cfg.template -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/ipxe_config.template -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/ks.cfg.template -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/pxe_config.template -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/pxe_grub_config.template -> build/lib/ironic/drivers/modules +copying ironic/api/controllers/v1/network-data-schema.json -> build/lib/ironic/api/controllers/v1 +creating build/lib/ironic/tests/json_samples +copying ironic/tests/json_samples/network_data.json -> build/lib/ironic/tests/json_samples running install_lib creating /build/reproducible-path/ironic-21.1.0/debian/tmp creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr @@ -4123,123 +4159,12 @@ creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3 creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd -copying build/lib/ironic/cmd/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd -copying build/lib/ironic/cmd/api.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd -copying build/lib/ironic/cmd/conductor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd -copying build/lib/ironic/cmd/dbsync.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd -copying build/lib/ironic/cmd/singleprocess.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd -copying build/lib/ironic/cmd/status.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/allocation.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/chassis.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/conductor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/deploy_template.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/deployment.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/fields.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/indirection.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/node.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/node_history.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/notification.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/port.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/portgroup.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/trait.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/volume_connector.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/volume_target.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp copying build/lib/ironic/dhcp/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp copying build/lib/ironic/dhcp/base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp copying build/lib/ironic/dhcp/dnsmasq.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp copying build/lib/ironic/dhcp/neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp copying build/lib/ironic/dhcp/none.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/isolinux_config.template -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/grub_conf.template -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/args.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/boot_devices.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/boot_modes.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/cinder.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/components.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/config.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/context.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/dhcp_factory.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/driver_factory.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/exception.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/faults.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/fsm.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/hash_ring.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/i18n.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/image_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/images.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/indicator_states.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/keystone.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/kickstart_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/molds.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/network.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/nova.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/policy.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/profiler.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/pxe_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/release_mappings.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/rpc.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/rpc_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/states.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/swift.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/wsgi_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service -copying build/lib/ironic/common/glance_service/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service -copying build/lib/ironic/common/glance_service/image_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service -copying build/lib/ironic/common/glance_service/service_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service -copying build/lib/ironic/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic -copying build/lib/ironic/version.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware -copying build/lib/ironic/api/middleware/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware -copying build/lib/ironic/api/middleware/auth_public_routes.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware -copying build/lib/ironic/api/middleware/json_ext.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware -copying build/lib/ironic/api/middleware/parsable_error.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/network-data-schema.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/allocation.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/chassis.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/collection.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/conductor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/deploy_template.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/driver.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/event.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/node.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/notification_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/port.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/portgroup.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/ramdisk.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/versions.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/volume.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/volume_connector.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/volume_target.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers -copying build/lib/ironic/api/controllers/base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers -copying build/lib/ironic/api/controllers/link.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers -copying build/lib/ironic/api/controllers/root.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers -copying build/lib/ironic/api/controllers/version.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers -copying build/lib/ironic/api/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api -copying build/lib/ironic/api/app.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api -copying build/lib/ironic/api/config.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api -copying build/lib/ironic/api/functions.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api -copying build/lib/ironic/api/hooks.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api -copying build/lib/ironic/api/method.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api -copying build/lib/ironic/api/wsgi.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic @@ -4312,6 +4237,78 @@ copying build/lib/ironic/db/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db copying build/lib/ironic/db/api.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db copying build/lib/ironic/db/migration.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking +copying build/lib/ironic/hacking/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking +copying build/lib/ironic/hacking/checks.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/allocation.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/chassis.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/conductor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/deploy_template.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/deployment.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/fields.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/indirection.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/node.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/node_history.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/notification.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/port.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/portgroup.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/trait.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/volume_connector.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/volume_target.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd +copying build/lib/ironic/cmd/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd +copying build/lib/ironic/cmd/api.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd +copying build/lib/ironic/cmd/conductor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd +copying build/lib/ironic/cmd/dbsync.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd +copying build/lib/ironic/cmd/singleprocess.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd +copying build/lib/ironic/cmd/status.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/isolinux_config.template -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/grub_conf.template -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/args.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/boot_devices.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/boot_modes.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/cinder.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/components.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/config.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/context.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/dhcp_factory.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/driver_factory.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/exception.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/faults.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/fsm.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/hash_ring.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/i18n.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/image_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/images.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/indicator_states.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/keystone.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/kickstart_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/molds.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/network.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/nova.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/policy.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/profiler.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/pxe_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/release_mappings.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/rpc.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/rpc_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/states.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/swift.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/wsgi_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service +copying build/lib/ironic/common/glance_service/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service +copying build/lib/ironic/common/glance_service/image_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service +copying build/lib/ironic/common/glance_service/service_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/allocations.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor @@ -4326,6 +4323,8 @@ copying build/lib/ironic/conductor/task_manager.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/verify.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic +copying build/lib/ironic/version.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/agent.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf @@ -4362,6 +4361,46 @@ copying build/lib/ironic/conf/snmp.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/swift.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/xclarity.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +copying build/lib/ironic/api/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +copying build/lib/ironic/api/app.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +copying build/lib/ironic/api/config.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +copying build/lib/ironic/api/functions.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +copying build/lib/ironic/api/hooks.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +copying build/lib/ironic/api/method.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +copying build/lib/ironic/api/wsgi.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware +copying build/lib/ironic/api/middleware/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware +copying build/lib/ironic/api/middleware/auth_public_routes.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware +copying build/lib/ironic/api/middleware/json_ext.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware +copying build/lib/ironic/api/middleware/parsable_error.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/network-data-schema.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/allocation.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/chassis.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/collection.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/conductor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/deploy_template.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/driver.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/event.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/node.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/notification_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/port.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/portgroup.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/ramdisk.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/versions.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/volume.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/volume_connector.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/volume_target.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers +copying build/lib/ironic/api/controllers/base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers +copying build/lib/ironic/api/controllers/link.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers +copying build/lib/ironic/api/controllers/root.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers +copying build/lib/ironic/api/controllers/version.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/raid_config_schema.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers @@ -4386,6 +4425,37 @@ copying build/lib/ironic/drivers/modules/ipxe_config.template -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/initial_grub_cfg.template -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/boot.ipxe -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network +copying build/lib/ironic/drivers/modules/network/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network +copying build/lib/ironic/drivers/modules/network/common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network +copying build/lib/ironic/drivers/modules/network/flat.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network +copying build/lib/ironic/drivers/modules/network/neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network +copying build/lib/ironic/drivers/modules/network/noop.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/boot.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/inspect.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity +copying build/lib/ironic/drivers/modules/xclarity/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity +copying build/lib/ironic/drivers/modules/xclarity/common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity +copying build/lib/ironic/drivers/modules/xclarity/management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity +copying build/lib/ironic/drivers/modules/xclarity/power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc +copying build/lib/ironic/drivers/modules/ibmc/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc +copying build/lib/ironic/drivers/modules/ibmc/management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc +copying build/lib/ironic/drivers/modules/ibmc/mappings.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc +copying build/lib/ironic/drivers/modules/ibmc/power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc +copying build/lib/ironic/drivers/modules/ibmc/raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc +copying build/lib/ironic/drivers/modules/ibmc/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc +copying build/lib/ironic/drivers/modules/ibmc/vendor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/intel_ipmi +copying build/lib/ironic/drivers/modules/intel_ipmi/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/intel_ipmi +copying build/lib/ironic/drivers/modules/intel_ipmi/management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/intel_ipmi copying build/lib/ironic/drivers/modules/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules @@ -4460,41 +4530,18 @@ copying build/lib/ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible copying build/lib/ironic/drivers/modules/ansible/deploy.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/boot.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/inspect.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network -copying build/lib/ironic/drivers/modules/network/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network -copying build/lib/ironic/drivers/modules/network/common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network -copying build/lib/ironic/drivers/modules/network/flat.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network -copying build/lib/ironic/drivers/modules/network/neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network -copying build/lib/ironic/drivers/modules/network/noop.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/boot.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/console.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/firmware_processor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/inspect.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/vendor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc -copying build/lib/ironic/drivers/modules/ibmc/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc -copying build/lib/ironic/drivers/modules/ibmc/management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc -copying build/lib/ironic/drivers/modules/ibmc/mappings.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc -copying build/lib/ironic/drivers/modules/ibmc/power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc -copying build/lib/ironic/drivers/modules/ibmc/raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc -copying build/lib/ironic/drivers/modules/ibmc/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc -copying build/lib/ironic/drivers/modules/ibmc/vendor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +copying build/lib/ironic/drivers/modules/drac/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +copying build/lib/ironic/drivers/modules/drac/bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +copying build/lib/ironic/drivers/modules/drac/boot.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +copying build/lib/ironic/drivers/modules/drac/common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +copying build/lib/ironic/drivers/modules/drac/inspect.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +copying build/lib/ironic/drivers/modules/drac/job.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +copying build/lib/ironic/drivers/modules/drac/management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +copying build/lib/ironic/drivers/modules/drac/power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +copying build/lib/ironic/drivers/modules/drac/raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +copying build/lib/ironic/drivers/modules/drac/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +copying build/lib/ironic/drivers/modules/drac/vendor_passthru.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish @@ -4511,76 +4558,46 @@ copying build/lib/ironic/drivers/modules/storage/cinder.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/external.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/noop.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/intel_ipmi -copying build/lib/ironic/drivers/modules/intel_ipmi/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/intel_ipmi -copying build/lib/ironic/drivers/modules/intel_ipmi/management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/intel_ipmi -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -copying build/lib/ironic/drivers/modules/drac/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -copying build/lib/ironic/drivers/modules/drac/bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -copying build/lib/ironic/drivers/modules/drac/boot.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -copying build/lib/ironic/drivers/modules/drac/common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -copying build/lib/ironic/drivers/modules/drac/inspect.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -copying build/lib/ironic/drivers/modules/drac/job.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -copying build/lib/ironic/drivers/modules/drac/management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -copying build/lib/ironic/drivers/modules/drac/power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -copying build/lib/ironic/drivers/modules/drac/raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -copying build/lib/ironic/drivers/modules/drac/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -copying build/lib/ironic/drivers/modules/drac/vendor_passthru.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity -copying build/lib/ironic/drivers/modules/xclarity/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity -copying build/lib/ironic/drivers/modules/xclarity/common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity -copying build/lib/ironic/drivers/modules/xclarity/management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity -copying build/lib/ironic/drivers/modules/xclarity/power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking -copying build/lib/ironic/hacking/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking -copying build/lib/ironic/hacking/checks.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/boot.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/console.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/firmware_processor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/inspect.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/vendor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/json_samples copying build/lib/ironic/tests/json_samples/network_data.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/json_samples -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional -copying build/lib/ironic/tests/functional/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional copying build/lib/ironic/tests/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests copying build/lib/ironic/tests/base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional +copying build/lib/ironic/tests/functional/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp -copying build/lib/ironic/tests/unit/dhcp/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp -copying build/lib/ironic/tests/unit/dhcp/test_dnsmasq.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp -copying build/lib/ironic/tests/unit/dhcp/test_factory.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp -copying build/lib/ironic/tests/unit/dhcp/test_neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/mgr_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_allocations.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_base_manager.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_cleaning.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_deployments.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_manager.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_notification_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_periodics.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_rpcapi.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_steps.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_task_manager.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_verify.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/policy_fixture.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/raid_constants.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/stubs.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/test_base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/test_allocations.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/test_api.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/test_bios_settings.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/test_chassis.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/test_conductor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/test_deploy_templates.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/test_node_history.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/test_node_tags.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/test_node_traits.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/test_nodes.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/test_portgroups.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/test_ports.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/test_volume_connectors.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/test_volume_targets.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy -copying build/lib/ironic/tests/unit/db/sqlalchemy/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy -copying build/lib/ironic/tests/unit/db/sqlalchemy/test_api.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy -copying build/lib/ironic/tests/unit/db/sqlalchemy/test_migrations.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy -copying build/lib/ironic/tests/unit/db/sqlalchemy/test_models.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy -copying build/lib/ironic/tests/unit/db/sqlalchemy/test_types.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd -copying build/lib/ironic/tests/unit/cmd/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd -copying build/lib/ironic/tests/unit/cmd/test_conductor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd -copying build/lib/ironic/tests/unit/cmd/test_dbsync.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd -copying build/lib/ironic/tests/unit/cmd/test_status.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_allocation.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects @@ -4600,9 +4617,45 @@ copying build/lib/ironic/tests/unit/objects/test_volume_connector.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_volume_target.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf -copying build/lib/ironic/tests/unit/conf/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf -copying build/lib/ironic/tests/unit/conf/test_auth.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples +copying build/lib/ironic/tests/unit/common/json_samples/neutron_subnet_show_ipv6.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples +copying build/lib/ironic/tests/unit/common/json_samples/neutron_subnet_show.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples +copying build/lib/ironic/tests/unit/common/json_samples/neutron_port_show_ipv6.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples +copying build/lib/ironic/tests/unit/common/json_samples/neutron_port_show.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples +copying build/lib/ironic/tests/unit/common/json_samples/neutron_network_show_ipv6.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples +copying build/lib/ironic/tests/unit/common/json_samples/neutron_network_show.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples +copying build/lib/ironic/tests/unit/common/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_args.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_cinder.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_context.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_driver_factory.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_fsm.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_glance_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_hash_ring.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_image_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_images.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_keystone.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_kickstart_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_molds.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_network.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_nova.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_policy.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_pxe_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_release_mappings.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_rpc.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_rpc_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_states.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_swift.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_wsgi_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd +copying build/lib/ironic/tests/unit/cmd/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd +copying build/lib/ironic/tests/unit/cmd/test_conductor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd +copying build/lib/ironic/tests/unit/cmd/test_dbsync.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd +copying build/lib/ironic/tests/unit/cmd/test_status.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_rbac_system_scoped.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_rbac_project_scoped.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api @@ -4622,6 +4675,8 @@ copying build/lib/ironic/tests/unit/api/test_root.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers +copying build/lib/ironic/tests/unit/api/controllers/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers +copying build/lib/ironic/tests/unit/api/controllers/test_base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_allocation.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 @@ -4642,57 +4697,11 @@ copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_target.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 -copying build/lib/ironic/tests/unit/api/controllers/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers -copying build/lib/ironic/tests/unit/api/controllers/test_base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples -copying build/lib/ironic/tests/unit/common/json_samples/neutron_subnet_show_ipv6.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples -copying build/lib/ironic/tests/unit/common/json_samples/neutron_subnet_show.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples -copying build/lib/ironic/tests/unit/common/json_samples/neutron_port_show_ipv6.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples -copying build/lib/ironic/tests/unit/common/json_samples/neutron_port_show.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples -copying build/lib/ironic/tests/unit/common/json_samples/neutron_network_show_ipv6.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples -copying build/lib/ironic/tests/unit/common/json_samples/neutron_network_show.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples -copying build/lib/ironic/tests/unit/common/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_args.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_cinder.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_context.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_driver_factory.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_fsm.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_glance_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_hash_ring.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_image_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_images.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_keystone.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_kickstart_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_molds.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_network.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_nova.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_policy.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_pxe_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_release_mappings.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_rpc.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_rpc_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_states.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_swift.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_wsgi_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/mgr_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_allocations.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_base_manager.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_cleaning.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_deployments.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_manager.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_notification_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_periodics.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_rpcapi.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_steps.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_task_manager.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_verify.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp +copying build/lib/ironic/tests/unit/dhcp/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp +copying build/lib/ironic/tests/unit/dhcp/test_dnsmasq.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp +copying build/lib/ironic/tests/unit/dhcp/test_factory.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp +copying build/lib/ironic/tests/unit/dhcp/test_neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_grub_config.template -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_config.template -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers @@ -4724,26 +4733,6 @@ copying build/lib/ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/third_party_driver_mocks.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish -copying build/lib/ironic/tests/unit/drivers/modules/redfish/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish -copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish -copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_boot.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish -copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_firmware_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish -copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_inspect.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish -copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish -copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish -copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish -copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish -copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_vendor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity -copying build/lib/ironic/tests/unit/drivers/modules/xclarity/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity -copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity -copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity -copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage -copying build/lib/ironic/tests/unit/drivers/modules/storage/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage -copying build/lib/ironic/tests/unit/drivers/modules/storage/test_cinder.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage -copying build/lib/ironic/tests/unit/drivers/modules/storage/test_external.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc @@ -4752,19 +4741,6 @@ copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_vendor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac -copying build/lib/ironic/tests/unit/drivers/modules/drac/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac -copying build/lib/ironic/tests/unit/drivers/modules/drac/test_bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac -copying build/lib/ironic/tests/unit/drivers/modules/drac/test_boot.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac -copying build/lib/ironic/tests/unit/drivers/modules/drac/test_common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac -copying build/lib/ironic/tests/unit/drivers/modules/drac/test_inspect.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac -copying build/lib/ironic/tests/unit/drivers/modules/drac/test_job.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac -copying build/lib/ironic/tests/unit/drivers/modules/drac/test_management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac -copying build/lib/ironic/tests/unit/drivers/modules/drac/test_periodic_task.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac -copying build/lib/ironic/tests/unit/drivers/modules/drac/test_power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac -copying build/lib/ironic/tests/unit/drivers/modules/drac/test_raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac -copying build/lib/ironic/tests/unit/drivers/modules/drac/test_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac -copying build/lib/ironic/tests/unit/drivers/modules/drac/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent_base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules @@ -4784,14 +4760,34 @@ copying build/lib/ironic/tests/unit/drivers/modules/test_pxe.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_ramdisk.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_snmp.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/json_samples -copying build/lib/ironic/tests/unit/drivers/modules/network/json_samples/network_data.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/json_samples -copying build/lib/ironic/tests/unit/drivers/modules/network/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network -copying build/lib/ironic/tests/unit/drivers/modules/network/test_common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network -copying build/lib/ironic/tests/unit/drivers/modules/network/test_flat.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network -copying build/lib/ironic/tests/unit/drivers/modules/network/test_neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network -copying build/lib/ironic/tests/unit/drivers/modules/network/test_noop.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible +copying build/lib/ironic/tests/unit/drivers/modules/ansible/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible +copying build/lib/ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity +copying build/lib/ironic/tests/unit/drivers/modules/xclarity/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity +copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity +copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity +copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage +copying build/lib/ironic/tests/unit/drivers/modules/storage/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage +copying build/lib/ironic/tests/unit/drivers/modules/storage/test_cinder.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage +copying build/lib/ironic/tests/unit/drivers/modules/storage/test_external.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi +copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi +copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi +copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi +copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish +copying build/lib/ironic/tests/unit/drivers/modules/redfish/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish +copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish +copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_boot.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish +copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_firmware_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish +copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_inspect.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish +copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish +copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish +copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish +copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish +copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_vendor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo @@ -4804,14 +4800,6 @@ copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible -copying build/lib/ironic/tests/unit/drivers/modules/ansible/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible -copying build/lib/ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible -creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi -copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi -copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi -copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi -copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc @@ -4824,111 +4812,59 @@ copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/api.py to api.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/conductor.py to conductor.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/dbsync.py to dbsync.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/singleprocess.py to singleprocess.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/status.py to status.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/allocation.py to allocation.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/base.py to base.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/bios.py to bios.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/chassis.py to chassis.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/conductor.py to conductor.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/deploy_template.py to deploy_template.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/deployment.py to deployment.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/fields.py to fields.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/indirection.py to indirection.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/node.py to node.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/node_history.py to node_history.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/notification.py to notification.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/port.py to port.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/portgroup.py to portgroup.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/trait.py to trait.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/volume_connector.py to volume_connector.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/volume_target.py to volume_target.cpython-311.pyc +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/json_samples +copying build/lib/ironic/tests/unit/drivers/modules/network/json_samples/network_data.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/json_samples +copying build/lib/ironic/tests/unit/drivers/modules/network/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network +copying build/lib/ironic/tests/unit/drivers/modules/network/test_common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network +copying build/lib/ironic/tests/unit/drivers/modules/network/test_flat.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network +copying build/lib/ironic/tests/unit/drivers/modules/network/test_neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network +copying build/lib/ironic/tests/unit/drivers/modules/network/test_noop.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac +copying build/lib/ironic/tests/unit/drivers/modules/drac/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac +copying build/lib/ironic/tests/unit/drivers/modules/drac/test_bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac +copying build/lib/ironic/tests/unit/drivers/modules/drac/test_boot.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac +copying build/lib/ironic/tests/unit/drivers/modules/drac/test_common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac +copying build/lib/ironic/tests/unit/drivers/modules/drac/test_inspect.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac +copying build/lib/ironic/tests/unit/drivers/modules/drac/test_job.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac +copying build/lib/ironic/tests/unit/drivers/modules/drac/test_management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac +copying build/lib/ironic/tests/unit/drivers/modules/drac/test_periodic_task.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac +copying build/lib/ironic/tests/unit/drivers/modules/drac/test_power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac +copying build/lib/ironic/tests/unit/drivers/modules/drac/test_raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac +copying build/lib/ironic/tests/unit/drivers/modules/drac/test_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac +copying build/lib/ironic/tests/unit/drivers/modules/drac/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy +copying build/lib/ironic/tests/unit/db/sqlalchemy/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy +copying build/lib/ironic/tests/unit/db/sqlalchemy/test_api.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy +copying build/lib/ironic/tests/unit/db/sqlalchemy/test_migrations.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy +copying build/lib/ironic/tests/unit/db/sqlalchemy/test_models.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy +copying build/lib/ironic/tests/unit/db/sqlalchemy/test_types.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy +copying build/lib/ironic/tests/unit/db/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/test_allocations.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/test_api.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/test_bios_settings.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/test_chassis.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/test_conductor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/test_deploy_templates.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/test_node_history.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/test_node_tags.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/test_node_traits.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/test_nodes.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/test_portgroups.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/test_ports.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/test_volume_connectors.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/test_volume_targets.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf +copying build/lib/ironic/tests/unit/conf/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf +copying build/lib/ironic/tests/unit/conf/test_auth.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/base.py to base.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/dnsmasq.py to dnsmasq.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/neutron.py to neutron.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/none.py to none.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/args.py to args.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/boot_devices.py to boot_devices.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/boot_modes.py to boot_modes.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/cinder.py to cinder.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/components.py to components.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/config.py to config.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/context.py to context.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/dhcp_factory.py to dhcp_factory.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/driver_factory.py to driver_factory.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/exception.py to exception.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/faults.py to faults.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/fsm.py to fsm.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/hash_ring.py to hash_ring.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/i18n.py to i18n.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/image_service.py to image_service.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/images.py to images.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/indicator_states.py to indicator_states.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/keystone.py to keystone.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/kickstart_utils.py to kickstart_utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/molds.py to molds.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/network.py to network.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/neutron.py to neutron.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/nova.py to nova.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/policy.py to policy.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/profiler.py to profiler.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/pxe_utils.py to pxe_utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/raid.py to raid.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/release_mappings.py to release_mappings.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/rpc.py to rpc.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/rpc_service.py to rpc_service.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/service.py to service.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/states.py to states.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/swift.py to swift.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/utils.py to utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/wsgi_service.py to wsgi_service.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/image_service.py to image_service.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/service_utils.py to service_utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/version.py to version.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/auth_public_routes.py to auth_public_routes.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/json_ext.py to json_ext.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/parsable_error.py to parsable_error.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/allocation.py to allocation.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/bios.py to bios.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/chassis.py to chassis.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/collection.py to collection.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/conductor.py to conductor.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/deploy_template.py to deploy_template.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/driver.py to driver.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/event.py to event.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/node.py to node.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/notification_utils.py to notification_utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/port.py to port.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/portgroup.py to portgroup.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/ramdisk.py to ramdisk.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/utils.py to utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/versions.py to versions.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume.py to volume.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_connector.py to volume_connector.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_target.py to volume_target.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/base.py to base.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/link.py to link.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/root.py to root.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/version.py to version.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/app.py to app.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/config.py to config.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/functions.py to functions.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/hooks.py to hooks.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/method.py to method.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/wsgi.py to wsgi.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py to fb3f10dd262e_add_fault_to_node_table.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py to f6fdb920c182_set_pxe_enabled_true.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py to f190f9d00a11_add_node_owner.cpython-311.pyc @@ -4994,6 +4930,71 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/api.py to api.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/migration.py to migration.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking/checks.py to checks.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/allocation.py to allocation.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/base.py to base.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/bios.py to bios.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/chassis.py to chassis.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/conductor.py to conductor.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/deploy_template.py to deploy_template.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/deployment.py to deployment.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/fields.py to fields.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/indirection.py to indirection.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/node.py to node.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/node_history.py to node_history.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/notification.py to notification.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/port.py to port.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/portgroup.py to portgroup.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/trait.py to trait.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/volume_connector.py to volume_connector.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/volume_target.py to volume_target.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/api.py to api.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/conductor.py to conductor.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/dbsync.py to dbsync.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/singleprocess.py to singleprocess.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/status.py to status.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/args.py to args.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/boot_devices.py to boot_devices.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/boot_modes.py to boot_modes.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/cinder.py to cinder.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/components.py to components.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/config.py to config.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/context.py to context.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/dhcp_factory.py to dhcp_factory.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/driver_factory.py to driver_factory.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/exception.py to exception.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/faults.py to faults.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/fsm.py to fsm.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/hash_ring.py to hash_ring.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/i18n.py to i18n.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/image_service.py to image_service.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/images.py to images.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/indicator_states.py to indicator_states.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/keystone.py to keystone.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/kickstart_utils.py to kickstart_utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/molds.py to molds.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/network.py to network.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/neutron.py to neutron.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/nova.py to nova.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/policy.py to policy.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/profiler.py to profiler.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/pxe_utils.py to pxe_utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/raid.py to raid.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/release_mappings.py to release_mappings.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/rpc.py to rpc.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/rpc_service.py to rpc_service.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/service.py to service.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/states.py to states.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/swift.py to swift.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/utils.py to utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/wsgi_service.py to wsgi_service.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/image_service.py to image_service.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/service_utils.py to service_utils.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/allocations.py to allocations.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/base_manager.py to base_manager.cpython-311.pyc @@ -5007,6 +5008,8 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/task_manager.py to task_manager.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/utils.py to utils.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/verify.py to verify.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/version.py to version.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/agent.py to agent.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/anaconda.py to anaconda.cpython-311.pyc @@ -5042,6 +5045,41 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/snmp.py to snmp.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/swift.py to swift.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/xclarity.py to xclarity.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/app.py to app.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/config.py to config.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/functions.py to functions.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/hooks.py to hooks.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/method.py to method.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/wsgi.py to wsgi.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/auth_public_routes.py to auth_public_routes.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/json_ext.py to json_ext.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/parsable_error.py to parsable_error.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/allocation.py to allocation.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/bios.py to bios.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/chassis.py to chassis.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/collection.py to collection.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/conductor.py to conductor.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/deploy_template.py to deploy_template.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/driver.py to driver.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/event.py to event.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/node.py to node.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/notification_utils.py to notification_utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/port.py to port.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/portgroup.py to portgroup.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/ramdisk.py to ramdisk.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/utils.py to utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/versions.py to versions.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume.py to volume.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_connector.py to volume_connector.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_target.py to volume_target.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/base.py to base.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/link.py to link.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/root.py to root.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/version.py to version.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/base.py to base.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/drac.py to drac.cpython-311.pyc @@ -5057,6 +5095,32 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/snmp.py to snmp.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/utils.py to utils.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/xclarity.py to xclarity.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/common.py to common.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/flat.py to flat.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/neutron.py to neutron.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/noop.py to noop.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/bios.py to bios.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/boot.py to boot.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/common.py to common.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/inspect.py to inspect.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/management.py to management.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/power.py to power.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/raid.py to raid.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/common.py to common.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/management.py to management.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/power.py to power.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/management.py to management.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/mappings.py to mappings.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/power.py to power.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/raid.py to raid.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/utils.py to utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/vendor.py to vendor.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/intel_ipmi/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/intel_ipmi/management.py to management.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/agent.py to agent.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/agent_base.py to agent_base.cpython-311.pyc @@ -5084,37 +5148,17 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py to ironic_log.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/deploy.py to deploy.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/bios.py to bios.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/boot.py to boot.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/common.py to common.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/inspect.py to inspect.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/management.py to management.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/power.py to power.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/raid.py to raid.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/common.py to common.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/flat.py to flat.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/neutron.py to neutron.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/noop.py to noop.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/bios.py to bios.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/boot.py to boot.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/common.py to common.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/console.py to console.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/firmware_processor.py to firmware_processor.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/inspect.py to inspect.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/management.py to management.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/power.py to power.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/raid.py to raid.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/vendor.py to vendor.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/management.py to management.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/mappings.py to mappings.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/power.py to power.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/raid.py to raid.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/utils.py to utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/vendor.py to vendor.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/bios.py to bios.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/boot.py to boot.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/common.py to common.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/inspect.py to inspect.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/job.py to job.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/management.py to management.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/power.py to power.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/raid.py to raid.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/utils.py to utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/vendor_passthru.py to vendor_passthru.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/bios.py to bios.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/boot.py to boot.cpython-311.pyc @@ -5129,63 +5173,39 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/cinder.py to cinder.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/external.py to external.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/noop.py to noop.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/intel_ipmi/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/intel_ipmi/management.py to management.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/bios.py to bios.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/boot.py to boot.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/common.py to common.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/inspect.py to inspect.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/job.py to job.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/management.py to management.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/power.py to power.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/raid.py to raid.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/utils.py to utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/vendor_passthru.py to vendor_passthru.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/common.py to common.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/management.py to management.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/power.py to power.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking/checks.py to checks.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/bios.py to bios.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/boot.py to boot.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/common.py to common.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/console.py to console.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/firmware_processor.py to firmware_processor.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/inspect.py to inspect.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/management.py to management.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/power.py to power.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/raid.py to raid.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/vendor.py to vendor.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/base.py to base.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_dnsmasq.py to test_dnsmasq.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_factory.py to test_factory.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_neutron.py to test_neutron.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/mgr_utils.py to mgr_utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_allocations.py to test_allocations.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_base_manager.py to test_base_manager.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_cleaning.py to test_cleaning.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_deployments.py to test_deployments.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_manager.py to test_manager.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_notification_utils.py to test_notification_utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_periodics.py to test_periodics.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_rpcapi.py to test_rpcapi.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_steps.py to test_steps.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_task_manager.py to test_task_manager.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_utils.py to test_utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_verify.py to test_verify.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/policy_fixture.py to policy_fixture.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/raid_constants.py to raid_constants.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/stubs.py to stubs.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/test_base.py to test_base.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/base.py to base.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_allocations.py to test_allocations.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_api.py to test_api.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_bios_settings.py to test_bios_settings.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_chassis.py to test_chassis.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_conductor.py to test_conductor.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_deploy_templates.py to test_deploy_templates.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_node_history.py to test_node_history.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_node_tags.py to test_node_tags.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_node_traits.py to test_node_traits.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_nodes.py to test_nodes.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_portgroups.py to test_portgroups.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_ports.py to test_ports.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_volume_connectors.py to test_volume_connectors.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_volume_targets.py to test_volume_targets.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/utils.py to utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_api.py to test_api.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_migrations.py to test_migrations.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_models.py to test_models.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_types.py to test_types.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_conductor.py to test_conductor.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_dbsync.py to test_dbsync.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_status.py to test_status.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_allocation.py to test_allocation.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_bios.py to test_bios.cpython-311.pyc @@ -5204,8 +5224,36 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_volume_connector.py to test_volume_connector.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_volume_target.py to test_volume_target.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/utils.py to utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf/test_auth.py to test_auth.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_args.py to test_args.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_cinder.py to test_cinder.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_context.py to test_context.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_driver_factory.py to test_driver_factory.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_fsm.py to test_fsm.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_glance_service.py to test_glance_service.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_hash_ring.py to test_hash_ring.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_image_service.py to test_image_service.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_images.py to test_images.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_keystone.py to test_keystone.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_kickstart_utils.py to test_kickstart_utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_molds.py to test_molds.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_network.py to test_network.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_neutron.py to test_neutron.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_nova.py to test_nova.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_policy.py to test_policy.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_pxe_utils.py to test_pxe_utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_raid.py to test_raid.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_release_mappings.py to test_release_mappings.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc.py to test_rpc.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc_service.py to test_rpc_service.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_states.py to test_states.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_swift.py to test_swift.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_utils.py to test_utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_wsgi_service.py to test_wsgi_service.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_conductor.py to test_conductor.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_dbsync.py to test_dbsync.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_status.py to test_status.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/base.py to base.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_acl.py to test_acl.cpython-311.pyc @@ -5219,6 +5267,8 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_proxy_middleware.py to test_proxy_middleware.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_root.py to test_root.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/utils.py to utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/test_base.py to test_base.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_allocation.py to test_allocation.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_chassis.py to test_chassis.cpython-311.pyc @@ -5238,48 +5288,10 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume.py to test_volume.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume_connector.py to test_volume_connector.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume_target.py to test_volume_target.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/test_base.py to test_base.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_args.py to test_args.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_cinder.py to test_cinder.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_context.py to test_context.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_driver_factory.py to test_driver_factory.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_fsm.py to test_fsm.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_glance_service.py to test_glance_service.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_hash_ring.py to test_hash_ring.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_image_service.py to test_image_service.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_images.py to test_images.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_keystone.py to test_keystone.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_kickstart_utils.py to test_kickstart_utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_molds.py to test_molds.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_network.py to test_network.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_neutron.py to test_neutron.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_nova.py to test_nova.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_policy.py to test_policy.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_pxe_utils.py to test_pxe_utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_raid.py to test_raid.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_release_mappings.py to test_release_mappings.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc.py to test_rpc.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc_service.py to test_rpc_service.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_states.py to test_states.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_swift.py to test_swift.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_utils.py to test_utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_wsgi_service.py to test_wsgi_service.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/mgr_utils.py to mgr_utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_allocations.py to test_allocations.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_base_manager.py to test_base_manager.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_cleaning.py to test_cleaning.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_deployments.py to test_deployments.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_manager.py to test_manager.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_notification_utils.py to test_notification_utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_periodics.py to test_periodics.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_rpcapi.py to test_rpcapi.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_steps.py to test_steps.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_task_manager.py to test_task_manager.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_utils.py to test_utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_verify.py to test_verify.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_dnsmasq.py to test_dnsmasq.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_factory.py to test_factory.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_neutron.py to test_neutron.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_base.py to test_base.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_drac.py to test_drac.cpython-311.pyc @@ -5295,23 +5307,6 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_xclarity.py to test_xclarity.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/third_party_driver_mock_specs.py to third_party_driver_mock_specs.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/third_party_driver_mocks.py to third_party_driver_mocks.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_bios.py to test_bios.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_boot.py to test_boot.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_firmware_utils.py to test_firmware_utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_inspect.py to test_inspect.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_management.py to test_management.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_power.py to test_power.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_raid.py to test_raid.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_utils.py to test_utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_vendor.py to test_vendor.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/test_common.py to test_common.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/test_management.py to test_management.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/test_power.py to test_power.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/test_cinder.py to test_cinder.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/test_external.py to test_external.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/base.py to base.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/test_management.py to test_management.cpython-311.pyc @@ -5319,18 +5314,6 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/test_raid.py to test_raid.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/test_utils.py to test_utils.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/test_vendor.py to test_vendor.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_bios.py to test_bios.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_boot.py to test_boot.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_common.py to test_common.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_inspect.py to test_inspect.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_job.py to test_job.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_management.py to test_management.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_periodic_task.py to test_periodic_task.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_power.py to test_power.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_raid.py to test_raid.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_utils.py to test_utils.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/utils.py to utils.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_agent.py to test_agent.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_agent_base.py to test_agent_base.cpython-311.pyc @@ -5350,11 +5333,29 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_pxe.py to test_pxe.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_ramdisk.py to test_ramdisk.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_snmp.py to test_snmp.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_common.py to test_common.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_flat.py to test_flat.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_neutron.py to test_neutron.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_noop.py to test_noop.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/test_deploy.py to test_deploy.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/test_common.py to test_common.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/test_management.py to test_management.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/test_power.py to test_power.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/test_cinder.py to test_cinder.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/test_external.py to test_external.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi/base.py to base.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py to test_intel_ipmi.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py to test_management.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_bios.py to test_bios.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_boot.py to test_boot.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_firmware_utils.py to test_firmware_utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_inspect.py to test_inspect.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_management.py to test_management.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_power.py to test_power.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_raid.py to test_raid.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_utils.py to test_utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_vendor.py to test_vendor.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_bios.py to test_bios.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_boot.py to test_boot.cpython-311.pyc @@ -5366,12 +5367,6 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_power.py to test_power.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_raid.py to test_raid.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_vendor.py to test_vendor.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/test_deploy.py to test_deploy.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi/base.py to base.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py to test_intel_ipmi.cpython-311.pyc -byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py to test_management.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_bios.py to test_bios.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_boot.py to test_boot.cpython-311.pyc @@ -5381,6 +5376,47 @@ byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_power.py to test_power.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_raid.py to test_raid.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_inspect.py to test_inspect.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_common.py to test_common.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_flat.py to test_flat.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_neutron.py to test_neutron.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_noop.py to test_noop.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_bios.py to test_bios.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_boot.py to test_boot.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_common.py to test_common.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_inspect.py to test_inspect.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_job.py to test_job.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_management.py to test_management.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_periodic_task.py to test_periodic_task.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_power.py to test_power.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_raid.py to test_raid.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_utils.py to test_utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/utils.py to utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_api.py to test_api.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_migrations.py to test_migrations.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_models.py to test_models.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_types.py to test_types.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/base.py to base.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_allocations.py to test_allocations.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_api.py to test_api.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_bios_settings.py to test_bios_settings.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_chassis.py to test_chassis.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_conductor.py to test_conductor.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_deploy_templates.py to test_deploy_templates.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_node_history.py to test_node_history.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_node_tags.py to test_node_tags.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_node_traits.py to test_node_traits.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_nodes.py to test_nodes.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_portgroups.py to test_portgroups.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_ports.py to test_ports.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_volume_connectors.py to test_volume_connectors.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_volume_targets.py to test_volume_targets.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/utils.py to utils.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf/test_auth.py to test_auth.cpython-311.pyc running install_data creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/etc creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/etc/ironic @@ -5406,355 +5442,94 @@ + PYTHON3S=disabled + TEST_PARALLEL_OPT=--parallel + TEST_SERIAL_OPT= -+ echo WARNING: --no-py2 is deprecated, and always on. ++ for i in $@ ++ case "${1}" in ++ echo 'WARNING: --no-py2 is deprecated, and always on.' WARNING: --no-py2 is deprecated, and always on. + shift -+ py3versions -vr ++ for i in $@ ++ case "${1}" in +++ py3versions -vr + PYTHON3S=3.11 -+ [ yes = no ] -+ [ no = yes ] -+ [ 3.11 = disabled ] -+ echo 3.11 -+ cut -d. -f1 ++ '[' yes = no ']' ++ '[' no = yes ']' ++ for pyvers in ${PYTHON3S} ++ '[' 3.11 = disabled ']' +++ echo 3.11 +++ cut -d. -f1 + PYMAJOR=3 -+ echo ===> Testing with python (python3) ++ echo '===> Testing with python (python3)' ===> Testing with python (python3) -+ pwd -+ [ -d /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages ] -+ [ -z ] -+ pwd -+ echo Implicitly adding PYTHONPATH=/build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages +++ pwd ++ '[' -d /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages ']' ++ '[' -z '' ']' +++ pwd ++ echo 'Implicitly adding PYTHONPATH=/build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages' Implicitly adding PYTHONPATH=/build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages -+ pwd +++ pwd + export PYTHONPATH=/build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages -+ [ -e .stestr.conf ] -+ [ -x /usr/bin/python3-stestr ] ++ PYTHONPATH=/build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages ++ '[' -e .stestr.conf ']' ++ '[' -x /usr/bin/python3-stestr ']' + STESTR=stestr + rm -rf .stestr -+ PYTHON=python3.11 stestr run --parallel --subunit ironic\.tests\.unit\.(?!(.*api\.controllers\.v1\.test_chassis\.TestPost\.test_create_chassis_unicode_description.*|.*common\.test_glance_service\.TestGlanceImageService\.test_show_makes_datetimes.*|.*drivers\.modules\.irmc\.test_raid\.IRMCRaidConfigurationInternalMethodsTestCase\.test__commit_raid_config_with_logical_drives.*|.*drivers\.modules\.test_pxe\.PXEAnacondaDeployTestCase\.test_reboot_to_instance.*)) + subunit2pyunit -2025-02-07 09:24:53.396 486056 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:53.452 486064 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:53.493 486061 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:53.493 486054 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:53.704 486071 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:53.923 486116 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:53.940 486066 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:54.007 486074 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:54.016 486091 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:54.417 486069 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:54.576 486123 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:54.668 486109 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:54.796 486106 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:54.999 486076 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:55.082 486125 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:24:55.398 486113 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2025-02-07 09:27:46.604 486054 INFO alembic.runtime.migration [None req-1d161068-8dc3-4dad-9341-36c9dd64fccb - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:46.605 486054 INFO alembic.runtime.migration [None req-1d161068-8dc3-4dad-9341-36c9dd64fccb - - - - - -] Will assume non-transactional DDL. -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2025-02-07 09:27:46.776 486056 INFO alembic.runtime.migration [None req-0d5814f3-6fd4-41ce-9a1c-00f8eb202f3b - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:46.777 486056 INFO alembic.runtime.migration [None req-0d5814f3-6fd4-41ce-9a1c-00f8eb202f3b - - - - - -] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version -ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok -ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok ... ok -2025-02-07 09:27:46.955 486091 INFO alembic.runtime.migration [None req-252a2762-ead6-41a9-9bb0-17a81a10d042 - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:46.956 486091 INFO alembic.runtime.migration [None req-252a2762-ead6-41a9-9bb0-17a81a10d042 - - - - - -] Will assume non-transactional DDL. -2025-02-07 09:27:46.979 486066 INFO alembic.runtime.migration [None req-624a9c81-5f87-4298-865d-2ec809270930 - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:46.980 486066 INFO alembic.runtime.migration [None req-624a9c81-5f87-4298-865d-2ec809270930 - - - - - -] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortsCollection.test__get_ports_collection -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortsCollection.test__get_ports_collection ... ok -ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high -ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2025-02-07 09:27:47.077 486116 INFO alembic.runtime.migration [None req-1a4a0f41-9408-4719-a78a-70eeb03520ce - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:47.078 486116 INFO alembic.runtime.migration [None req-1a4a0f41-9408-4719-a78a-70eeb03520ce - - - - - -] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low -ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low ... ok -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. -2025-02-07 09:27:47.252 486071 INFO alembic.runtime.migration [None req-279d757b-879a-41fc-9433-7a9ac2cad1b6 - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:47.253 486071 INFO alembic.runtime.migration [None req-279d757b-879a-41fc-9433-7a9ac2cad1b6 - - - - - -] Will assume non-transactional DDL. -2025-02-07 09:27:47.295 486064 INFO alembic.runtime.migration [None req-73e73350-482a-4a39-b542-0804672c6a2f - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:47.296 486064 INFO alembic.runtime.migration [None req-73e73350-482a-4a39-b542-0804672c6a2f - - - - - -] Will assume non-transactional DDL. -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. -2025-02-07 09:27:47.622 486123 INFO alembic.runtime.migration [None req-a2ad4c5d-004f-4683-b0f5-cb22a9fa0add - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:47.625 486123 INFO alembic.runtime.migration [None req-a2ad4c5d-004f-4683-b0f5-cb22a9fa0add - - - - - -] Will assume non-transactional DDL. -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2025-02-07 09:27:47.762 486061 INFO alembic.runtime.migration [None req-01f26276-529a-48fa-be72-8ccc97d494ea - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:47.763 486061 INFO alembic.runtime.migration [None req-01f26276-529a-48fa-be72-8ccc97d494ea - - - - - -] Will assume non-transactional DDL. -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -2025-02-07 09:27:48.159 486069 INFO alembic.runtime.migration [None req-444c7d88-0ba3-4612-91b4-aff2d52dbefa - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:48.161 486069 INFO alembic.runtime.migration [None req-444c7d88-0ba3-4612-91b4-aff2d52dbefa - - - - - -] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -2025-02-07 09:27:48.244 486109 INFO alembic.runtime.migration [None req-4e47dae7-d8b8-4b05-af63-43a8eaf71968 - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:48.245 486109 INFO alembic.runtime.migration [None req-4e47dae7-d8b8-4b05-af63-43a8eaf71968 - - - - - -] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -2025-02-07 09:27:48.514 486076 INFO alembic.runtime.migration [None req-11eec0f2-d3c2-4195-8913-411dec8f0633 - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:48.515 486076 INFO alembic.runtime.migration [None req-11eec0f2-d3c2-4195-8913-411dec8f0633 - - - - - -] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value ... ok -2025-02-07 09:27:48.630 486106 INFO alembic.runtime.migration [None req-017ac17b-73d7-4aae-930b-8e038c338c7f - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:48.631 486106 INFO alembic.runtime.migration [None req-017ac17b-73d7-4aae-930b-8e038c338c7f - - - - - -] Will assume non-transactional DDL. -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve ... ok -2025-02-07 09:27:48.927 486074 INFO alembic.runtime.migration [None req-703de853-bee5-4fdd-b3f4-d90bcd848178 - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:48.928 486074 INFO alembic.runtime.migration [None req-703de853-bee5-4fdd-b3f4-d90bcd848178 - - - - - -] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_local_link_connection_none_type -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_local_link_connection_none_type ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve_first_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve_first_fail ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_node_policy_and_retrieve_no_node -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_node_policy_and_retrieve_no_node ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_fields -ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_links -ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_links ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_args -ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_args ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_base_attributes -ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_base_attributes ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortByAddress.test__get_ports_by_address -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortByAddress.test__get_ports_by_address ... ok -ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned -ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned ... ok -ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings -ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node ... ok -ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned -ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node_policy_notfound -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node_policy_notfound ... ok -2025-02-07 09:27:49.456 486113 INFO alembic.runtime.migration [None req-fa784e85-1dc9-4287-bb98-d157bac8394d - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:49.457 486113 INFO alembic.runtime.migration [None req-fa784e85-1dc9-4287-bb98-d157bac8394d - - - - - -] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_policy_forbidden -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_policy_forbidden ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_with_suffix -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_with_suffix ... ok -2025-02-07 09:27:49.581 486125 INFO alembic.runtime.migration [None req-0c9a55a3-54d2-4bca-af1c-541c4f564ced - - - - - -] Context impl SQLiteImpl. -2025-02-07 09:27:49.582 486125 INFO alembic.runtime.migration [None req-0c9a55a3-54d2-4bca-af1c-541c4f564ced - - - - - -] Will assume non-transactional DDL. ++ PYTHON=python3.11 ++ stestr run --parallel --subunit 'ironic\.tests\.unit\.(?!(.*api\.controllers\.v1\.test_chassis\.TestPost\.test_create_chassis_unicode_description.*|.*common\.test_glance_service\.TestGlanceImageService\.test_show_makes_datetimes.*|.*drivers\.modules\.irmc\.test_raid\.IRMCRaidConfigurationInternalMethodsTestCase\.test__commit_raid_config_with_logical_drives.*|.*drivers\.modules\.test_pxe\.PXEAnacondaDeployTestCase\.test_reboot_to_instance.*))' +2024-01-07 05:30:12.194 22056 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:30:20.047 21125 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:30:20.302 23429 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:30:20.406 21231 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:30:20.444 23594 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:30:20.469 21377 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:30:20.469 21778 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:30:20.482 20951 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:30:20.489 21013 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:30:20.499 21476 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:30:20.523 23100 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:30:20.530 21664 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:30:20.574 23568 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:30:20.601 22724 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:30:20.722 22379 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2024-01-07 05:31:22.867 22056 INFO alembic.runtime.migration [None req-a51e57ec-5687-4f38-898b-40fd8cfbefd4 - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:31:22.870 22056 INFO alembic.runtime.migration [None req-a51e57ec-5687-4f38-898b-40fd8cfbefd4 - - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version ... ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals -ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi ... ok -ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_max_version -ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_max_version ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create ... ok -ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup -ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version ... ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan -ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan ... ok -ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_min_version -ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_min_version ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root ... ok -ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri -ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_detail -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_detail ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type_old_api -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type_old_api ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist ... ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_init -ironic.tests.unit.api.controllers.test_base.TestVersion.test_init ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id ... ok -ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version -ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_entries -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_entries ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized ... ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan -ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_custom_fields -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_old_version -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_old_version ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id ... ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals -ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port_policy_forbidden -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port_policy_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_pagination -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_pagination ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid ... ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length -ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbid_owner_proj_mismatch -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbid_owner_proj_mismatch ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_policy_notfound -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_policy_notfound ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network ... ok PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'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-39ec47dd-26eb-45e0-87e9-abfef8b67cff +Openstack-Request-Id: req-d92dd485-7e38-4904-839b-ebd259a7af79 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:27:49.976241+00:00", "updated_at": "2025-02-07T21:27:49.999792+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"}]]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:31:26.502515+00:00", "updated_at": "2024-01-06T15:31:26.524752+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 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2025-02-07T21:27:49.976241+00:00', 'updated_at': '2025-02-07T21:27:49.999792+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'}]]} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2024-01-06T15:31:26.502515+00:00', 'updated_at': '2024-01-06T15:31:26.524752+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'}]]} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'test', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-71ebc527-ad97-4ea4-8799-e064e7c2376b +Openstack-Request-Id: req-353da00b-6e04-4df5-8e4f-73c49349468c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:27:50.236660+00:00", "updated_at": "2025-02-07T21:27:50.256285+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"}]]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:31:26.743196+00:00", "updated_at": "2024-01-06T15:31:26.766027+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"}]]} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-12adad6f-b951-4331-8591-a81a7f91f941 +Openstack-Request-Id: req-fff81f3b-a80f-4439-bced-2d1a374dcaf6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -5762,1143 +5537,1284 @@ PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-77af2651-eb18-4db7-abd0-5fc62e196879 +Openstack-Request-Id: req-114fa4d3-cd9f-49e4-bbf4-21176f064452 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532 [{'path': '/extra/foo2', 'op': 'remove'}] +PATCH: /v1/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901 [{'path': '/extra/foo2', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1ae1613e-21a5-4709-accf-bc6b7958452c +Openstack-Request-Id: req-4628c4b2-3478-428e-ad2c-cf611b84a613 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "52ec99f4-9a7c-46d6-ae5b-3de718fb8532", "created_at": "2025-02-07T21:27:50.984878+00:00", "updated_at": "2025-02-07T21:27:51.000010+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532", "rel": "self"}, {"href": "http://localhost/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532/nodes", "rel": "self"}, {"href": "http://localhost/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532/nodes", "rel": "bookmark"}]]} -GET: /v1/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532 {} -GOT:{'uuid': '52ec99f4-9a7c-46d6-ae5b-3de718fb8532', 'created_at': '2025-02-07T21:27:50.984878+00:00', 'updated_at': '2025-02-07T21:27:51.000010+00:00', 'description': 'foobar', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532', 'rel': 'self'}, {'href': 'http://localhost/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532/nodes', 'rel': 'bookmark'}]]} -PATCH: /v1/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532 [{'path': '/extra', 'op': 'remove'}] +{"uuid": "60ca67bd-39b1-4d3f-adb2-bf87bebb3901", "created_at": "2024-01-06T15:31:27.334340+00:00", "updated_at": "2024-01-06T15:31:27.349977+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901", "rel": "self"}, {"href": "http://localhost/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901/nodes", "rel": "self"}, {"href": "http://localhost/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901/nodes", "rel": "bookmark"}]]} +GET: /v1/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901 {} +GOT:{'uuid': '60ca67bd-39b1-4d3f-adb2-bf87bebb3901', 'created_at': '2024-01-06T15:31:27.334340+00:00', 'updated_at': '2024-01-06T15:31:27.349977+00:00', 'description': 'foobar', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901', 'rel': 'self'}, {'href': 'http://localhost/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901/nodes', 'rel': 'bookmark'}]]} +PATCH: /v1/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3d93b1be-fcea-4708-9383-c717f2312434 +Openstack-Request-Id: req-7d204202-45cd-4ebb-98b5-cd0b84520d98 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "52ec99f4-9a7c-46d6-ae5b-3de718fb8532", "created_at": "2025-02-07T21:27:50.984878+00:00", "updated_at": "2025-02-07T21:27:51.022090+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532", "rel": "self"}, {"href": "http://localhost/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532/nodes", "rel": "self"}, {"href": "http://localhost/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532/nodes", "rel": "bookmark"}]]} -GET: /v1/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532 {} -GOT:{'uuid': '52ec99f4-9a7c-46d6-ae5b-3de718fb8532', 'created_at': '2025-02-07T21:27:50.984878+00:00', 'updated_at': '2025-02-07T21:27:51.022090+00:00', 'description': 'foobar', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532', 'rel': 'self'}, {'href': 'http://localhost/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/52ec99f4-9a7c-46d6-ae5b-3de718fb8532/nodes', 'rel': 'bookmark'}]]} +{"uuid": "60ca67bd-39b1-4d3f-adb2-bf87bebb3901", "created_at": "2024-01-06T15:31:27.334340+00:00", "updated_at": "2024-01-06T15:31:27.371641+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901", "rel": "self"}, {"href": "http://localhost/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901/nodes", "rel": "self"}, {"href": "http://localhost/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901/nodes", "rel": "bookmark"}]]} +GET: /v1/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901 {} +GOT:{'uuid': '60ca67bd-39b1-4d3f-adb2-bf87bebb3901', 'created_at': '2024-01-06T15:31:27.334340+00:00', 'updated_at': '2024-01-06T15:31:27.371641+00:00', 'description': 'foobar', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901', 'rel': 'self'}, {'href': 'http://localhost/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/60ca67bd-39b1-4d3f-adb2-bf87bebb3901/nodes', 'rel': 'bookmark'}]]} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-dcd4e16f-d935-439d-9b14-d0b27bfa4849 +Openstack-Request-Id: req-68803dd6-870f-4340-9600-5085b0ac5281 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 a non-existent object 'non-existent'\", \"debuginfo\": null}"} -PATCH: /v1/chassis/b77fbd68-5f1b-4c15-97fd-011aa24739c9 [{'path': '/description', 'op': 'remove'}] -ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest -ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name ... ok +PATCH: /v1/chassis/d1fdb5ff-c57c-4d52-85a5-100438e35c87 [{'path': '/description', 'op': 'remove'}] ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found ... ok -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error ... ok +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-159d129e-6b43-435f-8658-354885852920 +Openstack-Request-Id: req-065e6307-f4df-471c-8068-b18f65bc9b75 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'pxe_enabled': 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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "d1fdb5ff-c57c-4d52-85a5-100438e35c87", "created_at": "2024-01-06T15:31:28.261328+00:00", "updated_at": "2024-01-06T15:31:28.280600+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/d1fdb5ff-c57c-4d52-85a5-100438e35c87", "rel": "self"}, {"href": "http://localhost/chassis/d1fdb5ff-c57c-4d52-85a5-100438e35c87", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/d1fdb5ff-c57c-4d52-85a5-100438e35c87/nodes", "rel": "self"}, {"href": "http://localhost/chassis/d1fdb5ff-c57c-4d52-85a5-100438e35c87/nodes", "rel": "bookmark"}]]} +GET: /v1/chassis/d1fdb5ff-c57c-4d52-85a5-100438e35c87 {} +GOT:{'uuid': 'd1fdb5ff-c57c-4d52-85a5-100438e35c87', 'created_at': '2024-01-06T15:31:28.261328+00:00', 'updated_at': '2024-01-06T15:31:28.280600+00:00', 'description': None, 'extra': {'a': 'b'}, 'links': [{'href': 'http://localhost/v1/chassis/d1fdb5ff-c57c-4d52-85a5-100438e35c87', 'rel': 'self'}, {'href': 'http://localhost/chassis/d1fdb5ff-c57c-4d52-85a5-100438e35c87', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/d1fdb5ff-c57c-4d52-85a5-100438e35c87/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/d1fdb5ff-c57c-4d52-85a5-100438e35c87/nodes', 'rel': 'bookmark'}]]} +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/uuid', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1687dadb-c453-470b-9968-17bb01407b32 +Openstack-Request-Id: req-fc9d1cdb-6ffe-497b-93f0-10ceb32830a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address AA:AA:AA:11:22:33 already exists.\", \"debuginfo\": null}"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot overwrite UUID for an existing Chassis.\", \"debuginfo\": null}"} +PATCH: /v1/chassis/5f0757bb-5e85-48ae-bb0e-b75b200f78c9 [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-d026ed1d-474b-4726-aca6-d6474860cd5e +Openstack-Request-Id: req-0f3ed135-e342-4dfd-902f-080c9c73086b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:50.675446+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:27:50.675446+00:00', 'updated_at': None, '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': None, 'pxe_enabled': 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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "5f0757bb-5e85-48ae-bb0e-b75b200f78c9", "created_at": "2024-01-06T15:31:30.398632+00:00", "updated_at": "2024-01-06T15:31:30.430335+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/5f0757bb-5e85-48ae-bb0e-b75b200f78c9", "rel": "self"}, {"href": "http://localhost/chassis/5f0757bb-5e85-48ae-bb0e-b75b200f78c9", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/5f0757bb-5e85-48ae-bb0e-b75b200f78c9/nodes", "rel": "self"}, {"href": "http://localhost/chassis/5f0757bb-5e85-48ae-bb0e-b75b200f78c9/nodes", "rel": "bookmark"}]]} +GET: /v1/chassis/5f0757bb-5e85-48ae-bb0e-b75b200f78c9 {} +GOT:{'uuid': '5f0757bb-5e85-48ae-bb0e-b75b200f78c9', 'created_at': '2024-01-06T15:31:30.398632+00:00', 'updated_at': '2024-01-06T15:31:30.430335+00:00', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/5f0757bb-5e85-48ae-bb0e-b75b200f78c9', 'rel': 'self'}, {'href': 'http://localhost/chassis/5f0757bb-5e85-48ae-bb0e-b75b200f78c9', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/5f0757bb-5e85-48ae-bb0e-b75b200f78c9/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/5f0757bb-5e85-48ae-bb0e-b75b200f78c9/nodes', 'rel': 'bookmark'}]]} +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'chassis-new-description', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-56dbba39-2cce-45f2-9f5d-4c107aa04a2e +Openstack-Request-Id: req-28a5fc02-44fc-4c08-ac4d-b0c470c4d005 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:50.940639+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:27:50.940639+00:00', 'updated_at': None, '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': None, 'pxe_enabled': 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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:31:31.669177+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 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2024-01-06T15:31:31.669177+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'}]]} +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'new', 'op': 'replace'}] GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-28b09f97-ee06-4657-b981-7041b9192537 +Openstack-Request-Id: req-783b3f31-e78a-41e1-acde-5b7c1630c139 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 +X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_not_found ... ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden_no_project -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden_no_project ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra ... ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header -ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_old_version -ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_old_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false ... ok -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '003c32b6-704a-41c4-95f2-358126729c48', '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/003c32b6-704a-41c4-95f2-358126729c48 -Openstack-Request-Id: req-afc01a95-f162-4ab2-b73f-aa49fbacffea -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "003c32b6-704a-41c4-95f2-358126729c48", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/003c32b6-704a-41c4-95f2-358126729c48", "rel": "self"}, {"href": "http://localhost/deploy_templates/003c32b6-704a-41c4-95f2-358126729c48", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -GET: /v1/deploy_templates/003c32b6-704a-41c4-95f2-358126729c48 {} -GOT:{'uuid': '003c32b6-704a-41c4-95f2-358126729c48', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/003c32b6-704a-41c4-95f2-358126729c48', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/003c32b6-704a-41c4-95f2-358126729c48', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '7cf3fb4f-701f-42b0-8e38-e450a86e5498', '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/7cf3fb4f-701f-42b0-8e38-e450a86e5498 -Openstack-Request-Id: req-60f6aae7-3180-4892-bb76-2b4a8aa87ade -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "7cf3fb4f-701f-42b0-8e38-e450a86e5498", "created_at": "2025-02-07T21:27:50.258887+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/7cf3fb4f-701f-42b0-8e38-e450a86e5498", "rel": "self"}, {"href": "http://localhost/deploy_templates/7cf3fb4f-701f-42b0-8e38-e450a86e5498", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}]} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'd0df48d0-febf-423a-951e-3007a63bfbc7', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 201 Created +PATCH: /v1/chassis/06be288d-79da-4064-a9d4-743145295f00 [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/deploy_templates/d0df48d0-febf-423a-951e-3007a63bfbc7 -Openstack-Request-Id: req-689c833a-126a-4eb7-be08-d4c5d29d2d61 +Openstack-Request-Id: req-409713d3-ce1f-4dfb-ae97-5c617283ff29 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "d0df48d0-febf-423a-951e-3007a63bfbc7", "created_at": "2025-02-07T21:27:50.466694+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d0df48d0-febf-423a-951e-3007a63bfbc7", "rel": "self"}, {"href": "http://localhost/deploy_templates/d0df48d0-febf-423a-951e-3007a63bfbc7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -GET: /v1/deploy_templates/d0df48d0-febf-423a-951e-3007a63bfbc7 {} -GOT:{'uuid': 'd0df48d0-febf-423a-951e-3007a63bfbc7', 'created_at': '2025-02-07T21:27:50.466694+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/d0df48d0-febf-423a-951e-3007a63bfbc7', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d0df48d0-febf-423a-951e-3007a63bfbc7', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '0c349b82-5da8-489c-8d34-83bda869ca0f', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 500 Internal Server Error +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 06be288d-79da-4064-a9d4-743145295f00 could not be found.\", \"debuginfo\": null}"} +GET: /v1/nodes?associated=blah {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-2eb19e4f-37ca-48ce-b3e3-0d62afe22353 +Openstack-Request-Id: req-f43b0fad-4b77-4ada-bc6a-56b735db8def X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 201 Created +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}"} +GET: /v1/nodes?associated=true {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param ... ok +GOT:{'nodes': [{'uuid': 'f01b8adc-2176-4f8a-a4ca-dc48b7fdb294', 'instance_uuid': '3a3c2747-d229-4a19-8ace-f02aa2f9edea', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/f01b8adc-2176-4f8a-a4ca-dc48b7fdb294', 'rel': 'self'}, {'href': 'http://localhost/nodes/f01b8adc-2176-4f8a-a4ca-dc48b7fdb294', 'rel': 'bookmark'}]}, {'uuid': '2657f5e4-477e-4387-95a4-13d0c6674724', 'instance_uuid': '7579fcb1-e8fc-4380-a3de-d9c51d579431', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/2657f5e4-477e-4387-95a4-13d0c6674724', 'rel': 'self'}, {'href': 'http://localhost/nodes/2657f5e4-477e-4387-95a4-13d0c6674724', 'rel': 'bookmark'}]}, {'uuid': '7ae31c3c-ffa2-4868-bb96-64e6c8ee8154', 'instance_uuid': 'e1b9552a-611f-49f1-a92f-fa895509ba70', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/7ae31c3c-ffa2-4868-bb96-64e6c8ee8154', 'rel': 'self'}, {'href': 'http://localhost/nodes/7ae31c3c-ffa2-4868-bb96-64e6c8ee8154', 'rel': 'bookmark'}]}, {'uuid': '3c6ec6ed-c394-4d35-bfe4-50db756c85bf', 'instance_uuid': 'a01147ce-575a-4d67-b037-d2e8c9e6d9f5', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/3c6ec6ed-c394-4d35-bfe4-50db756c85bf', 'rel': 'self'}, {'href': 'http://localhost/nodes/3c6ec6ed-c394-4d35-bfe4-50db756c85bf', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=True {} +GOT:{'nodes': [{'uuid': 'f01b8adc-2176-4f8a-a4ca-dc48b7fdb294', 'instance_uuid': '3a3c2747-d229-4a19-8ace-f02aa2f9edea', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/f01b8adc-2176-4f8a-a4ca-dc48b7fdb294', 'rel': 'self'}, {'href': 'http://localhost/nodes/f01b8adc-2176-4f8a-a4ca-dc48b7fdb294', 'rel': 'bookmark'}]}, {'uuid': '2657f5e4-477e-4387-95a4-13d0c6674724', 'instance_uuid': '7579fcb1-e8fc-4380-a3de-d9c51d579431', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/2657f5e4-477e-4387-95a4-13d0c6674724', 'rel': 'self'}, {'href': 'http://localhost/nodes/2657f5e4-477e-4387-95a4-13d0c6674724', 'rel': 'bookmark'}]}, {'uuid': '7ae31c3c-ffa2-4868-bb96-64e6c8ee8154', 'instance_uuid': 'e1b9552a-611f-49f1-a92f-fa895509ba70', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/7ae31c3c-ffa2-4868-bb96-64e6c8ee8154', 'rel': 'self'}, {'href': 'http://localhost/nodes/7ae31c3c-ffa2-4868-bb96-64e6c8ee8154', 'rel': 'bookmark'}]}, {'uuid': '3c6ec6ed-c394-4d35-bfe4-50db756c85bf', 'instance_uuid': 'a01147ce-575a-4d67-b037-d2e8c9e6d9f5', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/3c6ec6ed-c394-4d35-bfe4-50db756c85bf', 'rel': 'self'}, {'href': 'http://localhost/nodes/3c6ec6ed-c394-4d35-bfe4-50db756c85bf', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/?limit=3 {} +GOT:{'nodes': [{'uuid': '16933220-a95a-4d1b-9d52-ec28b5221774', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/16933220-a95a-4d1b-9d52-ec28b5221774', 'rel': 'self'}, {'href': 'http://localhost/nodes/16933220-a95a-4d1b-9d52-ec28b5221774', 'rel': 'bookmark'}]}, {'uuid': '981edb76-9b60-4d1d-9441-f7144166da19', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/981edb76-9b60-4d1d-9441-f7144166da19', 'rel': 'self'}, {'href': 'http://localhost/nodes/981edb76-9b60-4d1d-9441-f7144166da19', 'rel': 'bookmark'}]}, {'uuid': '2a59276f-6dc7-488f-b2af-2dd4cc466ab0', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/2a59276f-6dc7-488f-b2af-2dd4cc466ab0', 'rel': 'self'}, {'href': 'http://localhost/nodes/2a59276f-6dc7-488f-b2af-2dd4cc466ab0', '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=2a59276f-6dc7-488f-b2af-2dd4cc466ab0'} +GET: /v1/nodes?fields=driver_info,uuid {} +GOT:{'nodes': [{'uuid': '5f1df628-7075-425c-82e5-37f78246bde5', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/5f1df628-7075-425c-82e5-37f78246bde5', 'rel': 'self'}, {'href': 'http://localhost/nodes/5f1df628-7075-425c-82e5-37f78246bde5', 'rel': 'bookmark'}]}, {'uuid': 'ead15a58-338b-45fa-bd99-9bfc640504ca', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/ead15a58-338b-45fa-bd99-9bfc640504ca', 'rel': 'self'}, {'href': 'http://localhost/nodes/ead15a58-338b-45fa-bd99-9bfc640504ca', 'rel': 'bookmark'}]}, {'uuid': 'ddc89a58-4c72-49a5-bba0-0d48f345c241', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/ddc89a58-4c72-49a5-bba0-0d48f345c241', 'rel': 'self'}, {'href': 'http://localhost/nodes/ddc89a58-4c72-49a5-bba0-0d48f345c241', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=ddc89a58-4c72-49a5-bba0-0d48f345c241'} +GET: /v1/nodes {} +GOT:{'nodes': [{'uuid': 'ec5c3109-f7d0-41bc-84c2-a9556c8fb104', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/ec5c3109-f7d0-41bc-84c2-a9556c8fb104', 'rel': 'self'}, {'href': 'http://localhost/nodes/ec5c3109-f7d0-41bc-84c2-a9556c8fb104', 'rel': 'bookmark'}]}, {'uuid': '797b5d14-ee41-47f9-bc9c-0b95210822f3', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/797b5d14-ee41-47f9-bc9c-0b95210822f3', 'rel': 'self'}, {'href': 'http://localhost/nodes/797b5d14-ee41-47f9-bc9c-0b95210822f3', 'rel': 'bookmark'}]}, {'uuid': 'a870df1f-05f5-499e-9e8d-16cc1c1a40ec', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/a870df1f-05f5-499e-9e8d-16cc1c1a40ec', 'rel': 'self'}, {'href': 'http://localhost/nodes/a870df1f-05f5-499e-9e8d-16cc1c1a40ec', '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=a870df1f-05f5-499e-9e8d-16cc1c1a40ec'} +GET: /v1/nodes?instance_uuid=1876962e-de39-4587-97ce-da1897719a62 {} +GOT:{'nodes': [{'uuid': 'eb95166e-1a55-4290-a8d1-6e6d351da402', 'instance_uuid': '1876962e-de39-4587-97ce-da1897719a62', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/eb95166e-1a55-4290-a8d1-6e6d351da402', 'rel': 'self'}, {'href': 'http://localhost/nodes/eb95166e-1a55-4290-a8d1-6e6d351da402', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_forbidden ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid ... ok +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:31:35.372460+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/deploy_templates/a1a0a2e4-e486-4b08-b4c2-24f0fa555f4a -Openstack-Request-Id: req-07f81a57-d05c-486a-b1ea-82b4d4078422 +Openstack-Request-Id: req-2ef5eb37-9b19-4abc-9805-c385917fc8c3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "a1a0a2e4-e486-4b08-b4c2-24f0fa555f4a", "created_at": "2025-02-07T21:27:51.148728+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a1a0a2e4-e486-4b08-b4c2-24f0fa555f4a", "rel": "self"}, {"href": "http://localhost/deploy_templates/a1a0a2e4-e486-4b08-b4c2-24f0fa555f4a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -GET: /v1/deploy_templates/a1a0a2e4-e486-4b08-b4c2-24f0fa555f4a {} -GOT:{'uuid': 'a1a0a2e4-e486-4b08-b4c2-24f0fa555f4a', 'created_at': '2025-02-07T21:27:51.148728+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/a1a0a2e4-e486-4b08-b4c2-24f0fa555f4a', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a1a0a2e4-e486-4b08-b4c2-24f0fa555f4a', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'ac6ac2d4-8214-4a92-8cc3-054f27ebafec', '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\"}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'f3a2abe3-6137-4a21-b477-6d8226fd5474', 'steps': [], 'extra': {}} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/nodes/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b9467a29-e4c9-4511-8cdd-c4ce3307a2d3 +Openstack-Request-Id: req-14ab7d8a-70c7-450f-add5-e06e0afc6422 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is too short\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '70376fc2-4de2-4a74-8999-32ceac05c5e6', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': 42} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.50 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} +GET: /v1/nodes/detail?instance_uuid=6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:31:35.950313+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': '6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d', 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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?instance_uuid=6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_match +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_match ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_not_match +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_not_match ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbid_project_mismatch +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbid_project_mismatch ... ok +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:31:36.072867+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': '6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d', 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': '46c0bf8a-846d-49a5-9724-5a61a5efa6bf', 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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?instance_uuid=6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d {} +GOT:{'nodes': []} +GET: /v1/nodes/detail?project=54321 {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7275b311-7fa1-44b4-81ae-3e0ba004286a +Openstack-Request-Id: req-5d9c5fee-f6d7-4b40-a4e2-2579fd0f51fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'object', 'null'\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '06a5fff8-025f-44c3-b73e-6ac23ad0cced', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}, 'foo': 'bar'} -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo ... ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr -ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_non_admin -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_non_admin ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular ... ok -ironic.tests.unit.api.test_method.TestExpose.test_exception -ironic.tests.unit.api.test_method.TestExpose.test_exception ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_copy_instance_uuid -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_copy_instance_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name ... ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings -ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_empty_string -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_empty_string ... ok -ironic.tests.unit.api.test_method.TestExpose.test_expose -ironic.tests.unit.api.test_method.TestExpose.test_expose ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_hidden_in_lower_version ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_node_not_found -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_node_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers ... ok -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version ... ok -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/network_type', 'value': 'unmanaged', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.50 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} +GET: /v1/nodes/detail {} +GOT:{'nodes': [{'uuid': '767d7b3f-3d60-4ef3-8912-b5b7ddd16cbc', 'created_at': '2024-01-06T15:31:36.783243+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': '12345', 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/767d7b3f-3d60-4ef3-8912-b5b7ddd16cbc', 'rel': 'self'}, {'href': 'http://localhost/nodes/767d7b3f-3d60-4ef3-8912-b5b7ddd16cbc', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/767d7b3f-3d60-4ef3-8912-b5b7ddd16cbc/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/767d7b3f-3d60-4ef3-8912-b5b7ddd16cbc/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/767d7b3f-3d60-4ef3-8912-b5b7ddd16cbc/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/767d7b3f-3d60-4ef3-8912-b5b7ddd16cbc/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/767d7b3f-3d60-4ef3-8912-b5b7ddd16cbc/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/767d7b3f-3d60-4ef3-8912-b5b7ddd16cbc/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/767d7b3f-3d60-4ef3-8912-b5b7ddd16cbc/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/767d7b3f-3d60-4ef3-8912-b5b7ddd16cbc/volume', 'rel': 'bookmark'}]}, {'uuid': '3d4c2e5d-f897-415f-b270-f9608e36ebfb', 'created_at': '2024-01-06T15:31:36.789017+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': '12345', 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/3d4c2e5d-f897-415f-b270-f9608e36ebfb', 'rel': 'self'}, {'href': 'http://localhost/nodes/3d4c2e5d-f897-415f-b270-f9608e36ebfb', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/3d4c2e5d-f897-415f-b270-f9608e36ebfb/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/3d4c2e5d-f897-415f-b270-f9608e36ebfb/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/3d4c2e5d-f897-415f-b270-f9608e36ebfb/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/3d4c2e5d-f897-415f-b270-f9608e36ebfb/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/3d4c2e5d-f897-415f-b270-f9608e36ebfb/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/3d4c2e5d-f897-415f-b270-f9608e36ebfb/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/3d4c2e5d-f897-415f-b270-f9608e36ebfb/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/3d4c2e5d-f897-415f-b270-f9608e36ebfb/volume', 'rel': 'bookmark'}]}, {'uuid': 'e16e9c2d-1230-4a12-8050-020ef3751960', 'created_at': '2024-01-06T15:31:36.793893+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': '12345', 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/e16e9c2d-1230-4a12-8050-020ef3751960', 'rel': 'self'}, {'href': 'http://localhost/nodes/e16e9c2d-1230-4a12-8050-020ef3751960', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/e16e9c2d-1230-4a12-8050-020ef3751960/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e16e9c2d-1230-4a12-8050-020ef3751960/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e16e9c2d-1230-4a12-8050-020ef3751960/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e16e9c2d-1230-4a12-8050-020ef3751960/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e16e9c2d-1230-4a12-8050-020ef3751960/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e16e9c2d-1230-4a12-8050-020ef3751960/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e16e9c2d-1230-4a12-8050-020ef3751960/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e16e9c2d-1230-4a12-8050-020ef3751960/volume', 'rel': 'bookmark'}]}, {'uuid': '2732e4c0-5ac5-406a-bdd6-9a916626a61e', 'created_at': '2024-01-06T15:31:36.799217+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': '12345', 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/2732e4c0-5ac5-406a-bdd6-9a916626a61e', 'rel': 'self'}, {'href': 'http://localhost/nodes/2732e4c0-5ac5-406a-bdd6-9a916626a61e', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/2732e4c0-5ac5-406a-bdd6-9a916626a61e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2732e4c0-5ac5-406a-bdd6-9a916626a61e/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/2732e4c0-5ac5-406a-bdd6-9a916626a61e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/2732e4c0-5ac5-406a-bdd6-9a916626a61e/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/2732e4c0-5ac5-406a-bdd6-9a916626a61e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/2732e4c0-5ac5-406a-bdd6-9a916626a61e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/2732e4c0-5ac5-406a-bdd6-9a916626a61e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/2732e4c0-5ac5-406a-bdd6-9a916626a61e/volume', 'rel': 'bookmark'}]}, {'uuid': '14ec0c33-965b-4575-8a71-f7ec6a948228', 'created_at': '2024-01-06T15:31:36.806276+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': '12345', 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/14ec0c33-965b-4575-8a71-f7ec6a948228', 'rel': 'self'}, {'href': 'http://localhost/nodes/14ec0c33-965b-4575-8a71-f7ec6a948228', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/14ec0c33-965b-4575-8a71-f7ec6a948228/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/14ec0c33-965b-4575-8a71-f7ec6a948228/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/14ec0c33-965b-4575-8a71-f7ec6a948228/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/14ec0c33-965b-4575-8a71-f7ec6a948228/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/14ec0c33-965b-4575-8a71-f7ec6a948228/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/14ec0c33-965b-4575-8a71-f7ec6a948228/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/14ec0c33-965b-4575-8a71-f7ec6a948228/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/14ec0c33-965b-4575-8a71-f7ec6a948228/volume', 'rel': 'bookmark'}]}, {'uuid': 'b6e7335b-b1ce-4dad-9e08-4ab7c33d18a2', 'created_at': '2024-01-06T15:31:36.813104+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': '12345', 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/b6e7335b-b1ce-4dad-9e08-4ab7c33d18a2', 'rel': 'self'}, {'href': 'http://localhost/nodes/b6e7335b-b1ce-4dad-9e08-4ab7c33d18a2', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/b6e7335b-b1ce-4dad-9e08-4ab7c33d18a2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b6e7335b-b1ce-4dad-9e08-4ab7c33d18a2/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b6e7335b-b1ce-4dad-9e08-4ab7c33d18a2/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b6e7335b-b1ce-4dad-9e08-4ab7c33d18a2/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b6e7335b-b1ce-4dad-9e08-4ab7c33d18a2/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b6e7335b-b1ce-4dad-9e08-4ab7c33d18a2/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b6e7335b-b1ce-4dad-9e08-4ab7c33d18a2/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b6e7335b-b1ce-4dad-9e08-4ab7c33d18a2/volume', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden_no_project +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden_no_project ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed ... ok + +GET: /v1/nodes/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6fe0b6e5-b12a-4424-958c-03d18011dbbc +Openstack-Request-Id: req-f27d8724-318e-4f67-a5de-6fe4855629e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.64 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:50.090169+00:00", "updated_at": "2025-02-07T21:27:50.146873+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/network_type', 'value': 'unmanaged', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.49 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} +GET: /v1/nodes {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, '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 {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, '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?sort_key=resource_class {} +GOT:{'nodes': [{'uuid': '3052451f-afaa-4fe4-8522-959b222ccde6', 'created_at': '2024-01-06T15:31:37.336598+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'rc_1', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'links': [{'href': 'http://localhost/v1/nodes/3052451f-afaa-4fe4-8522-959b222ccde6', 'rel': 'self'}, {'href': 'http://localhost/nodes/3052451f-afaa-4fe4-8522-959b222ccde6', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/3052451f-afaa-4fe4-8522-959b222ccde6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/3052451f-afaa-4fe4-8522-959b222ccde6/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/3052451f-afaa-4fe4-8522-959b222ccde6/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/3052451f-afaa-4fe4-8522-959b222ccde6/states', 'rel': 'bookmark'}]}, {'uuid': 'b004205d-7e06-492a-9f35-dd4e13c45ef2', 'created_at': '2024-01-06T15:31:37.331846+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'rc_2', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'links': [{'href': 'http://localhost/v1/nodes/b004205d-7e06-492a-9f35-dd4e13c45ef2', 'rel': 'self'}, {'href': 'http://localhost/nodes/b004205d-7e06-492a-9f35-dd4e13c45ef2', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/b004205d-7e06-492a-9f35-dd4e13c45ef2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b004205d-7e06-492a-9f35-dd4e13c45ef2/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b004205d-7e06-492a-9f35-dd4e13c45ef2/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b004205d-7e06-492a-9f35-dd4e13c45ef2/states', 'rel': 'bookmark'}]}, {'uuid': '39bbf4fd-bc9a-4f8e-a326-4109c11d8586', 'created_at': '2024-01-06T15:31:37.326462+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'rc_3', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'links': [{'href': 'http://localhost/v1/nodes/39bbf4fd-bc9a-4f8e-a326-4109c11d8586', 'rel': 'self'}, {'href': 'http://localhost/nodes/39bbf4fd-bc9a-4f8e-a326-4109c11d8586', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/39bbf4fd-bc9a-4f8e-a326-4109c11d8586/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/39bbf4fd-bc9a-4f8e-a326-4109c11d8586/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/39bbf4fd-bc9a-4f8e-a326-4109c11d8586/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/39bbf4fd-bc9a-4f8e-a326-4109c11d8586/states', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?sort_key=resource_class {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-b1d2ea60-6a95-4862-8c61-dabfbedd50b7 +Openstack-Request-Id: req-956f6d75-603e-4dd1-b674-42c62c68682f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.63 +X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'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 +GET: /v1/nodes?detail=True {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported ... ok +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:31:37.557708+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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=True&fields=name {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-912070cf-d1eb-4e2c-a05a-65f9c253f75a +Openstack-Request-Id: req-52c26526-1ea2-4f6b-a6a0-cd79d21735b4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:50.626136+00:00", "updated_at": "2025-02-07T21:27:50.665156+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} +GET: /v1/nodes?detail=False&fields=name {} +GOT:{'nodes': [{'name': None, '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=True {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-962a89ae-23b2-45f6-b8f1-61590ca8fcf3 +Openstack-Request-Id: req-ba5dce60-0bbb-4fa7-a5f0-b5d10bd558f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} +GET: /v1/nodes/detail?associated=true {} +GOT:{'nodes': [{'uuid': '6de95372-bab5-43fe-87ab-bebcde7c4d3d', 'created_at': '2024-01-06T15:31:38.298799+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': '2e430602-6658-496a-8648-77b5bc31a86a', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/6de95372-bab5-43fe-87ab-bebcde7c4d3d', 'rel': 'self'}, {'href': 'http://localhost/nodes/6de95372-bab5-43fe-87ab-bebcde7c4d3d', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/6de95372-bab5-43fe-87ab-bebcde7c4d3d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6de95372-bab5-43fe-87ab-bebcde7c4d3d/ports', 'rel': 'bookmark'}]}, {'uuid': 'a396e9f2-d9b6-4675-9eef-926f23049bb1', 'created_at': '2024-01-06T15:31:38.304004+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': 'c95ab634-4a9c-4e0a-a46d-a7f22279adea', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/a396e9f2-d9b6-4675-9eef-926f23049bb1', 'rel': 'self'}, {'href': 'http://localhost/nodes/a396e9f2-d9b6-4675-9eef-926f23049bb1', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/a396e9f2-d9b6-4675-9eef-926f23049bb1/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a396e9f2-d9b6-4675-9eef-926f23049bb1/ports', 'rel': 'bookmark'}]}, {'uuid': '3b1138d8-dcaa-41d8-8166-40632caeb3ad', 'created_at': '2024-01-06T15:31:38.309299+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': '59e2aa09-5155-4d29-b32d-db8777dedc4b', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/3b1138d8-dcaa-41d8-8166-40632caeb3ad', 'rel': 'self'}, {'href': 'http://localhost/nodes/3b1138d8-dcaa-41d8-8166-40632caeb3ad', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/3b1138d8-dcaa-41d8-8166-40632caeb3ad/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/3b1138d8-dcaa-41d8-8166-40632caeb3ad/ports', 'rel': 'bookmark'}]}, {'uuid': 'cc92837f-c527-4a20-aa2a-3785ff133e92', 'created_at': '2024-01-06T15:31:38.314697+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': 'bc1471c0-aa5e-414c-90d2-99ced275523f', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/cc92837f-c527-4a20-aa2a-3785ff133e92', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc92837f-c527-4a20-aa2a-3785ff133e92', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/cc92837f-c527-4a20-aa2a-3785ff133e92/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc92837f-c527-4a20-aa2a-3785ff133e92/ports', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?instance_uuid=1b7a53f9-dff1-4800-8266-d1dcc7be8873 {} +GOT:{'nodes': [{'uuid': 'ab6318ae-b5ca-47ee-9094-ac50ab95e429', 'created_at': '2024-01-06T15:31:38.445090+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': '1b7a53f9-dff1-4800-8266-d1dcc7be8873', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/ab6318ae-b5ca-47ee-9094-ac50ab95e429', 'rel': 'self'}, {'href': 'http://localhost/nodes/ab6318ae-b5ca-47ee-9094-ac50ab95e429', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/ab6318ae-b5ca-47ee-9094-ac50ab95e429/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ab6318ae-b5ca-47ee-9094-ac50ab95e429/ports', 'rel': 'bookmark'}]}]} +GET: /v1/nodes {} +GOT:{'nodes': []} +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 {} +GOT:{'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, '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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=boot_interface,console_interface,deploy_interface,inspect_interface,management_interface,power_interface,raid_interface,vendor_interface {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-72295483-eb26-43ac-9f1e-281177e01aba +Openstack-Request-Id: req-673ab264-c5c2-4124-b984-7d7bef2a6c33 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:51.135894+00:00", "updated_at": null, "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"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=automated_clean {} +GOT:{'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'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +GOT:{'boot_device': 'pxe', 'persistent': True} +GET: /v1/nodes/spam/management/boot_device {} +GOT:{'boot_device': 'pxe', 'persistent': True} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6d1aa05d-a760-44be-8f86-e514e905e6e6 +Openstack-Request-Id: req-b8e86620-626f-4f3a-bed3-3e5346e116e3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.34 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:51.360273+00:00", "updated_at": "2025-02-07T21:27:51.399336+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] +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}"} +GET: /v1/nodes?fields=uuid,instance_info {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_fields_for_nova +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_fields_for_nova ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_iface_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_iface_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_versioning +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_versioning ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_lessee_field +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_lessee_field ... ok +GOT:{'nodes': [{'uuid': '55081ea8-4fbf-4eee-9a72-7f0668d5056b', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/55081ea8-4fbf-4eee-9a72-7f0668d5056b', 'rel': 'self'}, {'href': 'http://localhost/nodes/55081ea8-4fbf-4eee-9a72-7f0668d5056b', 'rel': 'bookmark'}]}, {'uuid': '2f0b4a4f-fb2c-487e-89cb-bf2bc6cb1147', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/2f0b4a4f-fb2c-487e-89cb-bf2bc6cb1147', 'rel': 'self'}, {'href': 'http://localhost/nodes/2f0b4a4f-fb2c-487e-89cb-bf2bc6cb1147', 'rel': 'bookmark'}]}, {'uuid': '200f5ba5-d141-4a6e-af7f-b6fccc4e1bb2', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/200f5ba5-d141-4a6e-af7f-b6fccc4e1bb2', 'rel': 'self'}, {'href': 'http://localhost/nodes/200f5ba5-d141-4a6e-af7f-b6fccc4e1bb2', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?fields=uuid,power_state,target_power_state,provision_state,target_provision_state,last_error,maintenance,instance_uuid,traits,resource_class {} +GOT:{'nodes': [{'uuid': 'dad8510a-8f18-486d-91e6-7696d6a43ef4', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': '0e7be726-dad5-4754-a5bb-12dead063547', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/dad8510a-8f18-486d-91e6-7696d6a43ef4', 'rel': 'self'}, {'href': 'http://localhost/nodes/dad8510a-8f18-486d-91e6-7696d6a43ef4', 'rel': 'bookmark'}]}, {'uuid': '369b0a66-9790-4567-84c6-2cdc0366069a', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': '151aa40f-f498-454a-9a70-09a977b44c21', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/369b0a66-9790-4567-84c6-2cdc0366069a', 'rel': 'self'}, {'href': 'http://localhost/nodes/369b0a66-9790-4567-84c6-2cdc0366069a', 'rel': 'bookmark'}]}, {'uuid': 'c01559da-d49c-4440-b8aa-87ce8028310b', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': '41e5dc3c-8d2f-4294-9123-4dd4925f8269', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/c01559da-d49c-4440-b8aa-87ce8028310b', 'rel': 'self'}, {'href': 'http://localhost/nodes/c01559da-d49c-4440-b8aa-87ce8028310b', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?fields=name&limit=2 {} +GOT:{'nodes': [{'name': None, 'links': [{'href': 'http://localhost/v1/nodes/a76f05ce-a989-484a-953c-66ae10553b4c', 'rel': 'self'}, {'href': 'http://localhost/nodes/a76f05ce-a989-484a-953c-66ae10553b4c', 'rel': 'bookmark'}]}, {'name': None, 'links': [{'href': 'http://localhost/v1/nodes/caf08f83-767d-419f-bab9-d1cf970bb718', 'rel': 'self'}, {'href': 'http://localhost/nodes/caf08f83-767d-419f-bab9-d1cf970bb718', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=caf08f83-767d-419f-bab9-d1cf970bb718'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor {} +GOT:{'links': [{'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'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-a7c46a92-eb1f-4421-b73b-77b22fa8da2d +Openstack-Request-Id: req-43bfe45c-7e36-4c3a-99af-55ec6cadb3fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.33 +X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} +GOT:{'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'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-115de362-c155-4c13-9b8a-f05cef2df5c7 +Openstack-Request-Id: req-dac3a0ed-ab49-4367-bbc5-353d9539b50e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.34 +X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'e094500a-e710-4edc-9d95-c667184790b9', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-17829621-f40c-460a-83f1-9425f49f6660 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.24 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:52.069799+00:00", "updated_at": "2025-02-07T21:27:52.128320+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "e094500a-e710-4edc-9d95-c667184790b9"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] -GOT:Response: 200 OK +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} +GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} +GET: /v1/nodes/spam/states/console {} +GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} +GOT:{'console_enabled': False, 'console_info': None} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1f9924bd-12e7-48af-901e-f260ad1aee5f +Openstack-Request-Id: req-55bb0106-864e-4af1-b62a-7d15d61ff38c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:52.374252+00:00", "updated_at": "2025-02-07T21:27:52.418515+00:00", "address": "aa:bb:cc:dd:ee:ff", "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"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error ... ok -ironic.tests.unit.api.test_method.TestExpose.test_expose_validation -ironic.tests.unit.api.test_method.TestExpose.test_expose_validation ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_not_allowed -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_null_field -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_null_field ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_populate_node_uuid -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_populate_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found ... ok -ironic.tests.unit.api.test_method.TestExpose.test_post_body -ironic.tests.unit.api.test_method.TestExpose.test_post_body ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_empty_string -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_empty_string ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_with_name -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_with_name ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_false -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_false ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_present -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_present ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error ... ok -ironic.tests.unit.api.test_method.TestExpose.test_post_body_validation -ironic.tests.unit.api.test_method.TestExpose.test_post_body_validation ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid_not_found -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text ... ok -GET: /v1/bad/path {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/chassis/?limit=3 {} -GOT:{'chassis': [{'uuid': 'e4e190df-a43a-44e1-8626-784403f02e21', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e4e190df-a43a-44e1-8626-784403f02e21', 'rel': 'self'}, {'href': 'http://localhost/chassis/e4e190df-a43a-44e1-8626-784403f02e21', 'rel': 'bookmark'}]}, {'uuid': 'af719d37-a694-408c-b52e-1b13c0dbe066', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/af719d37-a694-408c-b52e-1b13c0dbe066', 'rel': 'self'}, {'href': 'http://localhost/chassis/af719d37-a694-408c-b52e-1b13c0dbe066', 'rel': 'bookmark'}]}, {'uuid': 'cf77643b-353e-4877-904e-12554da6a964', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/cf77643b-353e-4877-904e-12554da6a964', 'rel': 'self'}, {'href': 'http://localhost/chassis/cf77643b-353e-4877-904e-12554da6a964', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=cf77643b-353e-4877-904e-12554da6a964'} -GET: /v1/chassis?fields=extra,uuid {} -GOT:{'chassis': [{'uuid': '47508107-1f9d-4d38-b8d6-424d37c057a9', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/47508107-1f9d-4d38-b8d6-424d37c057a9', 'rel': 'self'}, {'href': 'http://localhost/chassis/47508107-1f9d-4d38-b8d6-424d37c057a9', 'rel': 'bookmark'}]}, {'uuid': '62dd8c37-1d76-44e8-ab46-c97da15ca242', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/62dd8c37-1d76-44e8-ab46-c97da15ca242', 'rel': 'self'}, {'href': 'http://localhost/chassis/62dd8c37-1d76-44e8-ab46-c97da15ca242', 'rel': 'bookmark'}]}, {'uuid': 'f9b5ccef-b8c3-4673-86e6-f76d8de057a8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/f9b5ccef-b8c3-4673-86e6-f76d8de057a8', 'rel': 'self'}, {'href': 'http://localhost/chassis/f9b5ccef-b8c3-4673-86e6-f76d8de057a8', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=f9b5ccef-b8c3-4673-86e6-f76d8de057a8'} -GET: /v1/chassis {} -GOT:{'chassis': [{'uuid': 'ec2ae66b-b150-400a-a638-320e09295128', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/ec2ae66b-b150-400a-a638-320e09295128', 'rel': 'self'}, {'href': 'http://localhost/chassis/ec2ae66b-b150-400a-a638-320e09295128', 'rel': 'bookmark'}]}, {'uuid': '29e6fa1b-476f-47c6-907e-ae25abfff1dd', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/29e6fa1b-476f-47c6-907e-ae25abfff1dd', 'rel': 'self'}, {'href': 'http://localhost/chassis/29e6fa1b-476f-47c6-907e-ae25abfff1dd', 'rel': 'bookmark'}]}, {'uuid': '743a04b0-bbd3-4514-b2f1-a7c4686789c9', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/743a04b0-bbd3-4514-b2f1-a7c4686789c9', 'rel': 'self'}, {'href': 'http://localhost/chassis/743a04b0-bbd3-4514-b2f1-a7c4686789c9', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=743a04b0-bbd3-4514-b2f1-a7c4686789c9'} -GET: /v1/chassis/detail {} -GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2025-02-07T21:27:51.301084+00:00', 'updated_at': None, '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/detail {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,extra {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-e7420892-5cb4-4d93-b9f3-4c204bdbdf96 +Openstack-Request-Id: req-0312f3a7-1520-47c8-9f70-af82ca190f0c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/chassis?detail=True {} -GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2025-02-07T21:27:51.744441+00:00', 'updated_at': None, '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 {} -GOT:{'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 {} -GOT:{'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=True&fields=description {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5bba4fa6-7fa4-420c-ba33-4f33eddb8f68 +Openstack-Request-Id: req-6ab21315-41c2-407b-a3ed-ce9a010571ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} -GET: /v1/chassis?detail=False&fields=description {} -GOT:{'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'}]}]} -GET: /v1/chassis?detail=True {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field spongebob is not a valid field.\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=description {} +GOT:{'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'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system {} +GOT:{'state': 'on'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7337a1f7-72e2-4ce4-9491-2da8224af1b5 +Openstack-Request-Id: req-fa5b0c6a-b237-4520-b21d-efbeb1801a96 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/chassis {} -GOT:{'chassis': []} -GET: /v1/chassis?fields=uuid,extra {} -GOT:{'chassis': [{'uuid': '7cb4091f-5c92-43d2-9320-9078a6b970e3', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/7cb4091f-5c92-43d2-9320-9078a6b970e3', 'rel': 'self'}, {'href': 'http://localhost/chassis/7cb4091f-5c92-43d2-9320-9078a6b970e3', 'rel': 'bookmark'}]}, {'uuid': 'd89be4d8-f383-41fc-b0f0-c270cda730e3', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/d89be4d8-f383-41fc-b0f0-c270cda730e3', 'rel': 'self'}, {'href': 'http://localhost/chassis/d89be4d8-f383-41fc-b0f0-c270cda730e3', 'rel': 'bookmark'}]}, {'uuid': '9669ce41-78ad-44b9-ba63-bd12eaf082a8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/9669ce41-78ad-44b9-ba63-bd12eaf082a8', 'rel': 'self'}, {'href': 'http://localhost/chassis/9669ce41-78ad-44b9-ba63-bd12eaf082a8', 'rel': 'bookmark'}]}]} -GET: /v1/chassis?fields=extra&limit=2 {} -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args2 -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args2 ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_true -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_true ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node ... ok -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty ... ok -ironic.tests.unit.api.test_method.TestExpose.test_response_204 -ironic.tests.unit.api.test_method.TestExpose.test_response_204 ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id ... ok -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system {} +GOT:{'state': 'on'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=lessee {} +GOT:{'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'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group ... ok +GOT:{'network_interface': None, '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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-9e0ebf86-1426-49e5-8c3d-22b7b443a841 +Openstack-Request-Id: req-17b422ba-99b5-4e70-add3-01bc7dbcf690 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "b77fbd68-5f1b-4c15-97fd-011aa24739c9", "created_at": "2025-02-07T21:27:51.459912+00:00", "updated_at": "2025-02-07T21:27:51.485380+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/b77fbd68-5f1b-4c15-97fd-011aa24739c9", "rel": "self"}, {"href": "http://localhost/chassis/b77fbd68-5f1b-4c15-97fd-011aa24739c9", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/b77fbd68-5f1b-4c15-97fd-011aa24739c9/nodes", "rel": "self"}, {"href": "http://localhost/chassis/b77fbd68-5f1b-4c15-97fd-011aa24739c9/nodes", "rel": "bookmark"}]]} -GET: /v1/chassis/b77fbd68-5f1b-4c15-97fd-011aa24739c9 {} -GOT:{'uuid': 'b77fbd68-5f1b-4c15-97fd-011aa24739c9', 'created_at': '2025-02-07T21:27:51.459912+00:00', 'updated_at': '2025-02-07T21:27:51.485380+00:00', 'description': None, 'extra': {'a': 'b'}, 'links': [{'href': 'http://localhost/v1/chassis/b77fbd68-5f1b-4c15-97fd-011aa24739c9', 'rel': 'self'}, {'href': 'http://localhost/chassis/b77fbd68-5f1b-4c15-97fd-011aa24739c9', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/b77fbd68-5f1b-4c15-97fd-011aa24739c9/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/b77fbd68-5f1b-4c15-97fd-011aa24739c9/nodes', 'rel': 'bookmark'}]]} -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/uuid', 'op': 'remove'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.19 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/nodes?conductor=rocky.rocks {} +GOT:{'nodes': []} +GET: /v1/nodes?conductor=fake.conductor {} +GOT:{'nodes': [{'uuid': 'fc4cc0e6-40d1-42a8-897d-40cd248f62f7', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/fc4cc0e6-40d1-42a8-897d-40cd248f62f7', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc4cc0e6-40d1-42a8-897d-40cd248f62f7', 'rel': 'bookmark'}]}, {'uuid': 'ecc0aa24-d23c-4d65-806f-cc3c7653c92a', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/ecc0aa24-d23c-4d65-806f-cc3c7653c92a', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecc0aa24-d23c-4d65-806f-cc3c7653c92a', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?conductor=fake.conductor {} +GOT:{'nodes': [{'uuid': 'ecc0aa24-d23c-4d65-806f-cc3c7653c92a', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/ecc0aa24-d23c-4d65-806f-cc3c7653c92a', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecc0aa24-d23c-4d65-806f-cc3c7653c92a', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?conductor_group=group1 {} +GOT:{'nodes': [{'uuid': 'edb79d6f-3f2b-4964-b888-3a47911938d6', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/edb79d6f-3f2b-4964-b888-3a47911938d6', 'rel': 'self'}, {'href': 'http://localhost/nodes/edb79d6f-3f2b-4964-b888-3a47911938d6', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?conductor_group=group2 {} +GOT:{'nodes': [{'uuid': '59eb66ae-a4f1-47b0-b6b6-2b11ea8453f8', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/59eb66ae-a4f1-47b0-b6b6-2b11ea8453f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/59eb66ae-a4f1-47b0-b6b6-2b11ea8453f8', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?conductor_group=group1 {} +GOT:{'nodes': [{'uuid': 'edb79d6f-3f2b-4964-b888-3a47911938d6', 'created_at': '2024-01-06T15:32:09.765910+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': 'group1', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/edb79d6f-3f2b-4964-b888-3a47911938d6', 'rel': 'self'}, {'href': 'http://localhost/nodes/edb79d6f-3f2b-4964-b888-3a47911938d6', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/edb79d6f-3f2b-4964-b888-3a47911938d6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/edb79d6f-3f2b-4964-b888-3a47911938d6/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/edb79d6f-3f2b-4964-b888-3a47911938d6/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/edb79d6f-3f2b-4964-b888-3a47911938d6/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/edb79d6f-3f2b-4964-b888-3a47911938d6/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/edb79d6f-3f2b-4964-b888-3a47911938d6/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/edb79d6f-3f2b-4964-b888-3a47911938d6/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/edb79d6f-3f2b-4964-b888-3a47911938d6/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?conductor_group=group2 {} +GOT:{'nodes': [{'uuid': '59eb66ae-a4f1-47b0-b6b6-2b11ea8453f8', 'created_at': '2024-01-06T15:32:09.775855+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': 'group2', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/59eb66ae-a4f1-47b0-b6b6-2b11ea8453f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/59eb66ae-a4f1-47b0-b6b6-2b11ea8453f8', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/59eb66ae-a4f1-47b0-b6b6-2b11ea8453f8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/59eb66ae-a4f1-47b0-b6b6-2b11ea8453f8/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/59eb66ae-a4f1-47b0-b6b6-2b11ea8453f8/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/59eb66ae-a4f1-47b0-b6b6-2b11ea8453f8/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/59eb66ae-a4f1-47b0-b6b6-2b11ea8453f8/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/59eb66ae-a4f1-47b0-b6b6-2b11ea8453f8/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/59eb66ae-a4f1-47b0-b6b6-2b11ea8453f8/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/59eb66ae-a4f1-47b0-b6b6-2b11ea8453f8/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?conductor_group=group1 {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-5a5c12ac-eceb-492b-a5b1-13de029aa0f5 +Openstack-Request-Id: req-aebcb873-fc1b-4ed4-9c28-ce4f3c29b58c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/chassis/80349382-96bf-45a9-b623-e0f60fd9d742 [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] -GOT:Response: 200 OK +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 {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version ... ok +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-ca66382c-a29d-45bd-8ae1-066a33928979 +Openstack-Request-Id: req-08622a41-0354-4378-b7f8-2ca2897b7a59 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "80349382-96bf-45a9-b623-e0f60fd9d742", "created_at": "2025-02-07T21:27:51.944694+00:00", "updated_at": "2025-02-07T21:27:51.968291+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/80349382-96bf-45a9-b623-e0f60fd9d742", "rel": "self"}, {"href": "http://localhost/chassis/80349382-96bf-45a9-b623-e0f60fd9d742", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/80349382-96bf-45a9-b623-e0f60fd9d742/nodes", "rel": "self"}, {"href": "http://localhost/chassis/80349382-96bf-45a9-b623-e0f60fd9d742/nodes", "rel": "bookmark"}]]} -GET: /v1/chassis/80349382-96bf-45a9-b623-e0f60fd9d742 {} -GOT:{'uuid': '80349382-96bf-45a9-b623-e0f60fd9d742', 'created_at': '2025-02-07T21:27:51.944694+00:00', 'updated_at': '2025-02-07T21:27:51.968291+00:00', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/80349382-96bf-45a9-b623-e0f60fd9d742', 'rel': 'self'}, {'href': 'http://localhost/chassis/80349382-96bf-45a9-b623-e0f60fd9d742', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/80349382-96bf-45a9-b623-e0f60fd9d742/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/80349382-96bf-45a9-b623-e0f60fd9d742/nodes', 'rel': 'bookmark'}]]} -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'chassis-new-description', 'op': 'replace'}] -GOT:Response: 200 OK +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?conductor=like.shadows {} +GOT:{'nodes': []} +GET: /v1/nodes?conductor=like.shadows {} +GOT:{'nodes': []} +GET: /v1/nodes?conductor=fake.conductor {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-ca7b9d7b-a5d8-492d-8994-814d31bd6116 +Openstack-Request-Id: req-61110da8-27db-4504-bed9-71c33267fd8d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:27:52.226670+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 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2025-02-07T21:27:52.226670+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'}]]} -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'new', 'op': 'replace'}] -GOT:Response: 500 Internal Server Error +X-Openstack-Ironic-Api-Version: 1.49 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Some unexpected thing happened\", \"debuginfo\": null}"} +GET: /v1/nodes?conductor=rocky.rocks {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-69afb40f-c72e-4b98-bc0a-f51465a23589 +Openstack-Request-Id: req-360db8a5-eeaa-4b79-a93f-c21c351f4d19 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} -PATCH: /v1/chassis/7cf8d20b-ecf6-4c53-9ab0-3a2f2ed23774 [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] -GOT:Response: 404 Not Found +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}"} +GET: /v1/nodes?description_contains=cat {} +GOT:{'nodes': [{'uuid': 'dedc4aee-0947-487b-9bc5-0f94ea538f3a', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/dedc4aee-0947-487b-9bc5-0f94ea538f3a', 'rel': 'self'}, {'href': 'http://localhost/nodes/dedc4aee-0947-487b-9bc5-0f94ea538f3a', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?description_contains=dog {} +GOT:{'nodes': [{'uuid': '352edf82-21b4-4af0-abbb-34a49bd99d33', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/352edf82-21b4-4af0-abbb-34a49bd99d33', 'rel': 'self'}, {'href': 'http://localhost/nodes/352edf82-21b4-4af0-abbb-34a49bd99d33', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?driver=ipmi {} +GOT:{'nodes': [{'uuid': '09a9eb53-3c6d-4609-9c16-09c9459bf939', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/09a9eb53-3c6d-4609-9c16-09c9459bf939', 'rel': 'self'}, {'href': 'http://localhost/nodes/09a9eb53-3c6d-4609-9c16-09c9459bf939', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?driver=fake-hardware {} +GOT:{'nodes': [{'uuid': 'c38193d9-58af-4698-bebe-049f39a6563c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/c38193d9-58af-4698-bebe-049f39a6563c', 'rel': 'self'}, {'href': 'http://localhost/nodes/c38193d9-58af-4698-bebe-049f39a6563c', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?driver=fake {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-c3ff3a22-8ef3-487d-ae55-892fe3d0a889 +Openstack-Request-Id: req-a1de703b-f914-4a13-ab05-920446e59bf8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 7cf8d20b-ecf6-4c53-9ab0-3a2f2ed23774 could not be found.\", \"debuginfo\": null}"} -GET: /v1/nodes?associated=blah {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.16\", \"debuginfo\": null}"} +GET: /v1/nodes?fault=power failure {} +GOT:{'nodes': [{'uuid': '81ad6f5f-6549-4602-a6b8-12ddc7665ff4', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/81ad6f5f-6549-4602-a6b8-12ddc7665ff4', 'rel': 'self'}, {'href': 'http://localhost/nodes/81ad6f5f-6549-4602-a6b8-12ddc7665ff4', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?fault=clean failure {} +GOT:{'nodes': [{'uuid': 'bb4b9845-e5c5-40e7-b6fb-d2363d99153c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/bb4b9845-e5c5-40e7-b6fb-d2363d99153c', 'rel': 'self'}, {'href': 'http://localhost/nodes/bb4b9845-e5c5-40e7-b6fb-d2363d99153c', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?fault=power failure {} +GOT:{'nodes': [{'uuid': '81ad6f5f-6549-4602-a6b8-12ddc7665ff4', 'created_at': '2024-01-06T15:32:25.774087+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': 'power failure', 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/81ad6f5f-6549-4602-a6b8-12ddc7665ff4', 'rel': 'self'}, {'href': 'http://localhost/nodes/81ad6f5f-6549-4602-a6b8-12ddc7665ff4', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/81ad6f5f-6549-4602-a6b8-12ddc7665ff4/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/81ad6f5f-6549-4602-a6b8-12ddc7665ff4/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/81ad6f5f-6549-4602-a6b8-12ddc7665ff4/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/81ad6f5f-6549-4602-a6b8-12ddc7665ff4/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/81ad6f5f-6549-4602-a6b8-12ddc7665ff4/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/81ad6f5f-6549-4602-a6b8-12ddc7665ff4/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/81ad6f5f-6549-4602-a6b8-12ddc7665ff4/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/81ad6f5f-6549-4602-a6b8-12ddc7665ff4/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?fault=clean failure {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail ... ok +GOT:{'nodes': [{'uuid': 'bb4b9845-e5c5-40e7-b6fb-d2363d99153c', 'created_at': '2024-01-06T15:32:25.783854+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': 'clean failure', 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/bb4b9845-e5c5-40e7-b6fb-d2363d99153c', 'rel': 'self'}, {'href': 'http://localhost/nodes/bb4b9845-e5c5-40e7-b6fb-d2363d99153c', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/bb4b9845-e5c5-40e7-b6fb-d2363d99153c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/bb4b9845-e5c5-40e7-b6fb-d2363d99153c/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/bb4b9845-e5c5-40e7-b6fb-d2363d99153c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/bb4b9845-e5c5-40e7-b6fb-d2363d99153c/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/bb4b9845-e5c5-40e7-b6fb-d2363d99153c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/bb4b9845-e5c5-40e7-b6fb-d2363d99153c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/bb4b9845-e5c5-40e7-b6fb-d2363d99153c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/bb4b9845-e5c5-40e7-b6fb-d2363d99153c/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?fault=power failure {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-2dad51ef-3753-43bd-bc98-6a8d4bd1b806 +Openstack-Request-Id: req-cace8729-034d-4ade-afd2-a426105d56e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes?associated=true {} -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_invalid_custom_fields -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_invalid_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed ... ok -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id_not_found -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive ... ok -ironic.tests.unit.api.test_method.TestExpose.test_response_content -ironic.tests.unit.api.test_method.TestExpose.test_response_content ... ok -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +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 {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Location: http://localhost/v1/ports/bbcba399-643d-4dde-8e6d-d4b260d0e495 -Openstack-Request-Id: req-9740d3b0-f804-48ea-ad01-4573ebb1a81e +Openstack-Request-Id: req-942c7e7c-41ff-4956-8ea1-729a04f713e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "bbcba399-643d-4dde-8e6d-d4b260d0e495", "created_at": "2025-02-07T21:27:51.624765+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, "links": [{"href": "http://localhost/v1/ports/bbcba399-643d-4dde-8e6d-d4b260d0e495", "rel": "self"}, {"href": "http://localhost/ports/bbcba399-643d-4dde-8e6d-d4b260d0e495", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -GET: /v1/ports/bbcba399-643d-4dde-8e6d-d4b260d0e495 {} -GOT:{'uuid': 'bbcba399-643d-4dde-8e6d-d4b260d0e495', 'created_at': '2025-02-07T21:27:51.624765+00:00', 'updated_at': None, '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': None, 'pxe_enabled': True, 'links': [{'href': 'http://localhost/v1/ports/bbcba399-643d-4dde-8e6d-d4b260d0e495', 'rel': 'self'}, {'href': 'http://localhost/ports/bbcba399-643d-4dde-8e6d-d4b260d0e495', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +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?fault=somefake {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-aef38ed4-ed09-4083-a28d-9447a4058e6b +Openstack-Request-Id: req-70ded7e3-88be-473c-8ee3-812ddef2ec60 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/ports {'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, 'node_uuid': 'invalid-format', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +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')\", \"debuginfo\": null}"} +GET: /v1/nodes/detail?fault=somefake {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e2c74cbc-931b-416c-a821-cfbe9a338398 +Openstack-Request-Id: req-c80864e8-4c95-4dd8-9f9b-9c1aff3029bb X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/ports {'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': '', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +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')\", \"debuginfo\": null}"} +GET: /v1/nodes?driver=test {} +GOT:{'nodes': []} +GET: /v1/nodes?provision_state=test {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-06393fbb-a5b7-47d2-8e17-4598d9d2b8df +Openstack-Request-Id: req-4c6402ec-c2ab-43f6-84b1-9afa991447a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"} -POST: /v1/ports {'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': 1234, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.9 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Provision state \\\"test\\\" is not valid\", \"debuginfo\": null}"} +GET: /v1/nodes?resource_class=test {} +GOT:{'nodes': []} +GET: /v1/nodes/detail?resource_class=test {} +GOT:{'nodes': []} +GET: /v1/nodes?lessee=project1 {} +GOT:{'nodes': [{'uuid': '326181a1-8e2a-455d-a845-782bf36549f7', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/326181a1-8e2a-455d-a845-782bf36549f7', 'rel': 'self'}, {'href': 'http://localhost/nodes/326181a1-8e2a-455d-a845-782bf36549f7', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?lessee=project2 {} +GOT:{'nodes': [{'uuid': 'bc6e957a-2e6a-4154-825d-fb446567a23c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/bc6e957a-2e6a-4154-825d-fb446567a23c', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc6e957a-2e6a-4154-825d-fb446567a23c', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?lessee=project1 {} +2024-01-07 05:32:39.598 21125 INFO alembic.runtime.migration [None req-fc2c527c-7e68-4dfb-a250-e8596b658bde - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:32:39.600 21125 INFO alembic.runtime.migration [None req-fc2c527c-7e68-4dfb-a250-e8596b658bde - - - - - -] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee_not_allowed ... ok +2024-01-07 05:32:41.074 23429 INFO alembic.runtime.migration [None req-28cccd60-5dec-4c65-a7b1-2f1730cb2395 - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:32:41.075 23429 INFO alembic.runtime.migration [None req-28cccd60-5dec-4c65-a7b1-2f1730cb2395 - - - - - -] Will assume non-transactional DDL. +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +GOT:{'nodes': [{'uuid': '326181a1-8e2a-455d-a845-782bf36549f7', 'created_at': '2024-01-06T15:32:38.229867+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': 'project1', 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/326181a1-8e2a-455d-a845-782bf36549f7', 'rel': 'self'}, {'href': 'http://localhost/nodes/326181a1-8e2a-455d-a845-782bf36549f7', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/326181a1-8e2a-455d-a845-782bf36549f7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/326181a1-8e2a-455d-a845-782bf36549f7/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/326181a1-8e2a-455d-a845-782bf36549f7/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/326181a1-8e2a-455d-a845-782bf36549f7/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/326181a1-8e2a-455d-a845-782bf36549f7/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/326181a1-8e2a-455d-a845-782bf36549f7/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/326181a1-8e2a-455d-a845-782bf36549f7/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/326181a1-8e2a-455d-a845-782bf36549f7/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?lessee=project2 {} +GOT:{'nodes': [{'uuid': 'bc6e957a-2e6a-4154-825d-fb446567a23c', 'created_at': '2024-01-06T15:32:38.239721+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': 'project2', 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/bc6e957a-2e6a-4154-825d-fb446567a23c', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc6e957a-2e6a-4154-825d-fb446567a23c', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/bc6e957a-2e6a-4154-825d-fb446567a23c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc6e957a-2e6a-4154-825d-fb446567a23c/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/bc6e957a-2e6a-4154-825d-fb446567a23c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc6e957a-2e6a-4154-825d-fb446567a23c/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/bc6e957a-2e6a-4154-825d-fb446567a23c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc6e957a-2e6a-4154-825d-fb446567a23c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/bc6e957a-2e6a-4154-825d-fb446567a23c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc6e957a-2e6a-4154-825d-fb446567a23c/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?lessee=project1 {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-f14a197e-d085-4bd0-8cc4-26219920d91f +Openstack-Request-Id: req-1a8c16f6-207d-4a92-848a-d4dd34aa43af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"} -POST: /v1/ports {'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': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 400 Bad Request +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 {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-f173b0ce-c9ee-42dc-bd84-5903a9300788 +Openstack-Request-Id: req-39ae141c-7e75-4360-81be-3c8258dd093f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"} -POST: /v1/ports {'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': 'Ethernet1/15', 'switch_info': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +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?owner=fred {} +GOT:{'nodes': [{'uuid': 'dccc49cb-5df8-49ff-929a-cf7feb51fc4e', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/dccc49cb-5df8-49ff-929a-cf7feb51fc4e', 'rel': 'self'}, {'href': 'http://localhost/nodes/dccc49cb-5df8-49ff-929a-cf7feb51fc4e', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?owner=bob {} +GOT:{'nodes': [{'uuid': 'bfaa83f5-7867-4e2c-b3f1-900ca8a32f32', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/bfaa83f5-7867-4e2c-b3f1-900ca8a32f32', 'rel': 'self'}, {'href': 'http://localhost/nodes/bfaa83f5-7867-4e2c-b3f1-900ca8a32f32', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?owner=fred {} +2024-01-07 05:32:43.221 21377 INFO alembic.runtime.migration [None req-ef0359fb-2227-499f-9e46-4197ad064a3d - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:32:43.223 21377 INFO alembic.runtime.migration [None req-ef0359fb-2227-499f-9e46-4197ad064a3d - - - - - -] Will assume non-transactional DDL. +2024-01-07 05:32:43.386 23568 INFO alembic.runtime.migration [None req-7c8b48ea-e04c-47ad-8ac3-c352e467c346 - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:32:43.392 23568 INFO alembic.runtime.migration [None req-7c8b48ea-e04c-47ad-8ac3-c352e467c346 - - - - - -] Will assume non-transactional DDL. +2024-01-07 05:32:43.482 21664 INFO alembic.runtime.migration [None req-c22fd66d-ab97-49c4-bee2-81c0399df954 - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:32:43.483 21664 INFO alembic.runtime.migration [None req-c22fd66d-ab97-49c4-bee2-81c0399df954 - - - - - -] Will assume non-transactional DDL. +2024-01-07 05:32:43.686 20951 INFO alembic.runtime.migration [None req-72b5f902-f74b-4b41-a2f5-a2e613afadfa - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:32:43.697 20951 INFO alembic.runtime.migration [None req-72b5f902-f74b-4b41-a2f5-a2e613afadfa - - - - - -] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner ... ok +2024-01-07 05:32:44.086 21231 INFO alembic.runtime.migration [None req-8fadfe9c-1fbb-4ca4-8263-459f38a5f38a - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:32:44.088 21231 INFO alembic.runtime.migration [None req-8fadfe9c-1fbb-4ca4-8263-459f38a5f38a - - - - - -] Will assume non-transactional DDL. +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. +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed ... ok +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. +2024-01-07 05:32:45.340 21476 INFO alembic.runtime.migration [None req-75cc4d61-b84b-4d99-8760-642127f1788c - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:32:45.342 21476 INFO alembic.runtime.migration [None req-75cc4d61-b84b-4d99-8760-642127f1788c - - - - - -] Will assume non-transactional DDL. +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. +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state ... ok +2024-01-07 05:32:47.293 21778 INFO alembic.runtime.migration [None req-7227a824-f041-4fb4-912b-467ce51e1958 - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:32:47.295 21778 INFO alembic.runtime.migration [None req-7227a824-f041-4fb4-912b-467ce51e1958 - - - - - -] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +2024-01-07 05:32:49.283 21013 INFO alembic.runtime.migration [None req-fbab14ae-402a-4fbd-bed0-e0f769c1b7ea - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:32:49.293 21013 INFO alembic.runtime.migration [None req-fbab14ae-402a-4fbd-bed0-e0f769c1b7ea - - - - - -] Will assume non-transactional DDL. +2024-01-07 05:32:49.676 23594 INFO alembic.runtime.migration [None req-a6e4aa94-9c3f-4ab3-bc00-5f81f473dd1d - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:32:49.677 23594 INFO alembic.runtime.migration [None req-a6e4aa94-9c3f-4ab3-bc00-5f81f473dd1d - - - - - -] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class ... ok +2024-01-07 05:32:50.262 23100 INFO alembic.runtime.migration [None req-d5013c58-f2ee-44e8-813c-d2ffaea78e2d - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:32:50.266 23100 INFO alembic.runtime.migration [None req-d5013c58-f2ee-44e8-813c-d2ffaea78e2d - - - - - -] Will assume non-transactional DDL. +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. +GOT:{'nodes': [{'uuid': 'dccc49cb-5df8-49ff-929a-cf7feb51fc4e', 'created_at': '2024-01-06T15:32:41.263751+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': 'fred', 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/dccc49cb-5df8-49ff-929a-cf7feb51fc4e', 'rel': 'self'}, {'href': 'http://localhost/nodes/dccc49cb-5df8-49ff-929a-cf7feb51fc4e', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/dccc49cb-5df8-49ff-929a-cf7feb51fc4e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/dccc49cb-5df8-49ff-929a-cf7feb51fc4e/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/dccc49cb-5df8-49ff-929a-cf7feb51fc4e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/dccc49cb-5df8-49ff-929a-cf7feb51fc4e/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/dccc49cb-5df8-49ff-929a-cf7feb51fc4e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/dccc49cb-5df8-49ff-929a-cf7feb51fc4e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/dccc49cb-5df8-49ff-929a-cf7feb51fc4e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/dccc49cb-5df8-49ff-929a-cf7feb51fc4e/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?owner=bob {} +GOT:{'nodes': [{'uuid': 'bfaa83f5-7867-4e2c-b3f1-900ca8a32f32', 'created_at': '2024-01-06T15:32:41.279874+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': 'bob', 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/bfaa83f5-7867-4e2c-b3f1-900ca8a32f32', 'rel': 'self'}, {'href': 'http://localhost/nodes/bfaa83f5-7867-4e2c-b3f1-900ca8a32f32', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/bfaa83f5-7867-4e2c-b3f1-900ca8a32f32/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/bfaa83f5-7867-4e2c-b3f1-900ca8a32f32/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/bfaa83f5-7867-4e2c-b3f1-900ca8a32f32/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/bfaa83f5-7867-4e2c-b3f1-900ca8a32f32/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/bfaa83f5-7867-4e2c-b3f1-900ca8a32f32/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/bfaa83f5-7867-4e2c-b3f1-900ca8a32f32/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/bfaa83f5-7867-4e2c-b3f1-900ca8a32f32/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/bfaa83f5-7867-4e2c-b3f1-900ca8a32f32/volume', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?owner=fred {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-cd0ab5ec-2ad7-46ee-bcc9-e406a610a7e9 +Openstack-Request-Id: req-5964c376-c961-496b-8f7d-8a063a01895d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:53.342527+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -POST: /v1/ports {'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', 'switch_info': 'fooswitch'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory ... ok -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '893ef889-6c27-4c86-b621-450d19422c75', 'owner': None, 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +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 {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Location: http://localhost/v1/allocations/893ef889-6c27-4c86-b621-450d19422c75 -Openstack-Request-Id: req-0f896fe9-cb8a-4e86-b2ee-a67b9dc3b8c5 +Openstack-Request-Id: req-3f46cebb-5278-4f0d-8812-87420e3e9acb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "893ef889-6c27-4c86-b621-450d19422c75", "created_at": "2025-02-07T21:27:51.928557+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/893ef889-6c27-4c86-b621-450d19422c75", "rel": "self"}, {"href": "http://localhost/allocations/893ef889-6c27-4c86-b621-450d19422c75", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -GET: /v1/allocations/893ef889-6c27-4c86-b621-450d19422c75 {} -GOT:{'uuid': '893ef889-6c27-4c86-b621-450d19422c75', 'created_at': '2025-02-07T21:27:51.928557+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/893ef889-6c27-4c86-b621-450d19422c75', 'rel': 'self'}, {'href': 'http://localhost/allocations/893ef889-6c27-4c86-b621-450d19422c75', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -POST: /v1/allocations {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +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?provision_state=available {} +GOT:{'nodes': [{'uuid': '6e388002-f630-43a4-9887-655df5b865e3', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/6e388002-f630-43a4-9887-655df5b865e3', 'rel': 'self'}, {'href': 'http://localhost/nodes/6e388002-f630-43a4-9887-655df5b865e3', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?provision_state=deploying {} +GOT:{'nodes': [{'uuid': 'b3975072-0389-4b60-97a5-c9bd1bffdbc2', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'deploying', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/b3975072-0389-4b60-97a5-c9bd1bffdbc2', 'rel': 'self'}, {'href': 'http://localhost/nodes/b3975072-0389-4b60-97a5-c9bd1bffdbc2', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?provision_state=test {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Location: http://localhost/v1/allocations/211b13b6-22e9-4da6-b0a8-66b7ab7ba773 -Openstack-Request-Id: req-8d62fe26-e7cc-4f6e-beb1-f9b3e8896e6a +Openstack-Request-Id: req-cde3b4c7-0d90-4476-bb24-1bff5b288e7c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "211b13b6-22e9-4da6-b0a8-66b7ab7ba773", "created_at": "2025-02-07T21:27:52.254820+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/211b13b6-22e9-4da6-b0a8-66b7ab7ba773", "rel": "self"}, {"href": "http://localhost/allocations/211b13b6-22e9-4da6-b0a8-66b7ab7ba773", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -GET: /v1/allocations/211b13b6-22e9-4da6-b0a8-66b7ab7ba773 {} -GOT:{'uuid': '211b13b6-22e9-4da6-b0a8-66b7ab7ba773', 'created_at': '2025-02-07T21:27:52.254820+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'bm-super', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/211b13b6-22e9-4da6-b0a8-66b7ab7ba773', 'rel': 'self'}, {'href': 'http://localhost/allocations/211b13b6-22e9-4da6-b0a8-66b7ab7ba773', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '163d79dc-b619-4ff1-b924-862d666fbeac', 'owner': None, 'node': '4516ab0e-be4a-4d28-8ab7-7cebb11c8f38'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.8 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/nodes?resource_class=foo {} +GOT:{'nodes': [{'uuid': '7ef5c52c-f10e-4a5f-96fb-4372e9218a51', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/7ef5c52c-f10e-4a5f-96fb-4372e9218a51', 'rel': 'self'}, {'href': 'http://localhost/nodes/7ef5c52c-f10e-4a5f-96fb-4372e9218a51', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?resource_class=bar {} +GOT:{'nodes': [{'uuid': 'eb914211-9a5b-4fe3-8a08-f05324e213ac', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/eb914211-9a5b-4fe3-8a08-f05324e213ac', 'rel': 'self'}, {'href': 'http://localhost/nodes/eb914211-9a5b-4fe3-8a08-f05324e213ac', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?resource_class=foo {} +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one ... ok +GOT:{'nodes': [{'uuid': 'c7866173-6eff-4688-90b4-c66e7ed33e44', 'created_at': '2024-01-06T15:32:50.647915+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'foo', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'links': [{'href': 'http://localhost/v1/nodes/c7866173-6eff-4688-90b4-c66e7ed33e44', 'rel': 'self'}, {'href': 'http://localhost/nodes/c7866173-6eff-4688-90b4-c66e7ed33e44', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/c7866173-6eff-4688-90b4-c66e7ed33e44/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c7866173-6eff-4688-90b4-c66e7ed33e44/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c7866173-6eff-4688-90b4-c66e7ed33e44/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c7866173-6eff-4688-90b4-c66e7ed33e44/states', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?resource_class=bar {} +GOT:{'nodes': [{'uuid': '47195401-06ea-43f0-8aa3-e710117fe97c', 'created_at': '2024-01-06T15:32:50.675081+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'bar', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'links': [{'href': 'http://localhost/v1/nodes/47195401-06ea-43f0-8aa3-e710117fe97c', 'rel': 'self'}, {'href': 'http://localhost/nodes/47195401-06ea-43f0-8aa3-e710117fe97c', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/47195401-06ea-43f0-8aa3-e710117fe97c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/47195401-06ea-43f0-8aa3-e710117fe97c/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/47195401-06ea-43f0-8aa3-e710117fe97c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/47195401-06ea-43f0-8aa3-e710117fe97c/states', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?resource_class=fake {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-aa68cfd8-4003-4e17-88c2-6cecfc7e78f9 +Openstack-Request-Id: req-2ba6ddea-bd5c-425b-b42a-8add826abab5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 4516ab0e-be4a-4d28-8ab7-7cebb11c8f38 could not be found.\", \"debuginfo\": null}"} -POST: /v1/allocations {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 400 Bad Request +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}"} +GET: /v1/nodes/detail?resource_class=fake {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-7d70b930-5352-48f3-b29e-7560a9a693e8 +Openstack-Request-Id: req-cf29f7b6-7185-467c-96be-1818ccdae7fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '2ee12511-04b7-4530-9dee-113a0ced5d0c', 'owner': None, 'node': 'backfill-me'} -GOT:Response: 201 Created +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}"} +GET: /v1/nodes?traits=CUSTOM_TRAIT_1 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/allocations/2ee12511-04b7-4530-9dee-113a0ced5d0c -Openstack-Request-Id: req-709ec45d-cce4-49e3-890c-6372d1008e08 +Openstack-Request-Id: req-d413bbd9-38b3-42f6-88eb-acda6e6eef94 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "2ee12511-04b7-4530-9dee-113a0ced5d0c", "created_at": "2025-02-07T21:27:53.071273+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/2ee12511-04b7-4530-9dee-113a0ced5d0c", "rel": "self"}, {"href": "http://localhost/allocations/2ee12511-04b7-4530-9dee-113a0ced5d0c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -GET: /v1/allocations/2ee12511-04b7-4530-9dee-113a0ced5d0c {} -GOT:{'uuid': '2ee12511-04b7-4530-9dee-113a0ced5d0c', 'created_at': '2025-02-07T21:27:53.071273+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/2ee12511-04b7-4530-9dee-113a0ced5d0c', 'rel': 'self'}, {'href': 'http://localhost/allocations/2ee12511-04b7-4530-9dee-113a0ced5d0c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -POST: /v1/allocations {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"} +GET: /v1/nodes/detail?traits=CUSTOM_TRAIT_1 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/allocations/23fbca84-906b-47a3-8e69-0d374c6562e9 -Openstack-Request-Id: req-73a3644f-0eae-473f-ad48-ee1f680a5e65 +Openstack-Request-Id: req-9db0a207-f903-4b24-8817-a186b5dcf4b3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "23fbca84-906b-47a3-8e69-0d374c6562e9", "created_at": "2025-02-07T21:27:53.369457+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/23fbca84-906b-47a3-8e69-0d374c6562e9", "rel": "self"}, {"href": "http://localhost/allocations/23fbca84-906b-47a3-8e69-0d374c6562e9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -GET: /v1/allocations/23fbca84-906b-47a3-8e69-0d374c6562e9 {} -GOT:{'uuid': '23fbca84-906b-47a3-8e69-0d374c6562e9', 'created_at': '2025-02-07T21:27:53.369457+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'bm-super', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/23fbca84-906b-47a3-8e69-0d374c6562e9', 'rel': 'self'}, {'href': 'http://localhost/allocations/23fbca84-906b-47a3-8e69-0d374c6562e9', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '9b89942c-d471-4211-91ef-9e6674178396', 'owner': None} -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:32:54.687854+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_configdrive_dict +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_configdrive_dict ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_deleted_chassis +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_deleted_chassis ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:32:54.837399+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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?fields=extra,instance_info {} +GOT:{'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'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=driver_info {} +GOT:{'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'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:32:55.324956+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/node.json.json {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:32:55.411252+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': 'node.json', 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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.json {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:32:55.581607+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/node.json {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:32:56.000563+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': 'node.json', 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_no_agent_secret +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_no_agent_secret ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake ... ok +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id ... ok -GET: /v1/allocations?owner=54321 {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-e915a1e9-511a-4388-bff3-414d3558c372 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/allocations {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-15da6be8-3f70-466b-b41f-6aa20ac97ffe -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/allocations {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-e27dc696-6058-4aea-98f3-84101e8f640a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/allocations {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} -GET: /v1/allocations {} -GOT:{'allocations': [{'uuid': '39de6a3c-0ac1-4e88-b351-1a7acc254e86', 'created_at': '2025-02-07T21:27:52.202369+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/39de6a3c-0ac1-4e88-b351-1a7acc254e86', 'rel': 'self'}, {'href': 'http://localhost/allocations/39de6a3c-0ac1-4e88-b351-1a7acc254e86', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '5482c462-1e04-4780-8d15-3a5bc198346c', 'created_at': '2025-02-07T21:27:52.203939+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/5482c462-1e04-4780-8d15-3a5bc198346c', 'rel': 'self'}, {'href': 'http://localhost/allocations/5482c462-1e04-4780-8d15-3a5bc198346c', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'ad817149-9bf9-41fd-a8eb-7f90795f1038', 'created_at': '2025-02-07T21:27:52.205339+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/ad817149-9bf9-41fd-a8eb-7f90795f1038', 'rel': 'self'}, {'href': 'http://localhost/allocations/ad817149-9bf9-41fd-a8eb-7f90795f1038', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '95a10786-105c-4b0e-a449-f38636060557', 'created_at': '2025-02-07T21:27:52.206677+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/95a10786-105c-4b0e-a449-f38636060557', 'rel': 'self'}, {'href': 'http://localhost/allocations/95a10786-105c-4b0e-a449-f38636060557', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '51bdbf04-d6fc-4f4c-8873-249f87c720d1', 'created_at': '2025-02-07T21:27:52.208020+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/51bdbf04-d6fc-4f4c-8873-249f87c720d1', 'rel': 'self'}, {'href': 'http://localhost/allocations/51bdbf04-d6fc-4f4c-8873-249f87c720d1', 'rel': 'bookmark'}], 'node_uuid': None}]} -GET: /v1/allocations/fbe9781a-f64a-4500-b9b0-e8e110a0b72c {} -GOT:{'uuid': 'fbe9781a-f64a-4500-b9b0-e8e110a0b72c', 'created_at': '2025-02-07T21:27:52.475766+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/fbe9781a-f64a-4500-b9b0-e8e110a0b72c', 'rel': 'self'}, {'href': 'http://localhost/allocations/fbe9781a-f64a-4500-b9b0-e8e110a0b72c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/fbe9781a-f64a-4500-b9b0-e8e110a0b72c {} -GOT:{'uuid': 'fbe9781a-f64a-4500-b9b0-e8e110a0b72c', 'created_at': '2025-02-07T21:27:52.475766+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/fbe9781a-f64a-4500-b9b0-e8e110a0b72c', 'rel': 'self'}, {'href': 'http://localhost/allocations/fbe9781a-f64a-4500-b9b0-e8e110a0b72c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/143e771b-89d1-4b55-bfa9-aa0523a21a68 {} -GOT:{'uuid': '143e771b-89d1-4b55-bfa9-aa0523a21a68', 'created_at': '2025-02-07T21:27:52.785518+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/143e771b-89d1-4b55-bfa9-aa0523a21a68', 'rel': 'self'}, {'href': 'http://localhost/allocations/143e771b-89d1-4b55-bfa9-aa0523a21a68', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/c0de9546-0cd2-4e27-a10c-d1bbfd097f6c {} -GOT:{'uuid': 'c0de9546-0cd2-4e27-a10c-d1bbfd097f6c', 'created_at': '2025-02-07T21:27:53.131084+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/c0de9546-0cd2-4e27-a10c-d1bbfd097f6c', 'rel': 'self'}, {'href': 'http://localhost/allocations/c0de9546-0cd2-4e27-a10c-d1bbfd097f6c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/node/71b89cb0-1fd0-4264-b667-4a5ff6ae4860/allocation {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/node/60bb2477-e028-47df-af5c-6b9463745481/allocation {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/allocations/?limit=3 {} -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version ... ok -ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates -ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_does_not_contain_event +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_does_not_contain_event ... ok +ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup +ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_retired_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_retired_fields ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type ... ok +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event ... ok +ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri +ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_invalid -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name ... ok +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_unsupported_api_version +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_unsupported_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name ... ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals +ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals ... ok +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_multiple_events +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_multiple_events ... ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan +ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node ... ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_init +ironic.tests.unit.api.controllers.test_base.TestVersion.test_init ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_bind_port_events +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_bind_port_events ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_custom_fields_invalid_fields ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional ... ok -ironic.tests.unit.api.test_method.TestExpose.test_response_custom_status -ironic.tests.unit.api.test_method.TestExpose.test_response_custom_status ... ok -ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str -ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait ... ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan +ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_copy_instance_uuid +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_copy_instance_uuid ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one ... ok -ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str -ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str ... ok -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority ... ok -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit ... ok -ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match -ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type_old_api -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type_old_api ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id ... ok -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request ... ok -GET: /v1/drivers/fake-hardware-type {} -GOT:{'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 {} -GOT:{'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'}]} -POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-cc3992f6-b399-4a65-8dcf-098f9b1f957d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -DELETE: /v1/drivers/fake-hardware-type/vendor_passthru/do_test -GOT:Response: 202 Accepted -Openstack-Request-Id: req-f6a756e6-0985-462a-a6df-af47dd5f2159 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_delete_port_events +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_delete_port_events ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_false +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_false ... ok +GET: /v1/drivers/manual-management/properties {} +GOT:{'prop1': 'Property 1. Required.'} +GET: /v1/drivers/manual-management/properties {} +GOT:{'prop1': 'Property 1. Required.'} +GET: /v1/drivers/manual-management/properties {} +GOT:{'prop1': 'Property 1. Required.'} +GET: /v1/drivers/driver/properties {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9de9f4bc-c8ba-4073-aa8a-3a8c08506f84 +Openstack-Request-Id: req-c884cd4d-c699-4d19-b200-ccc1052ed7fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {} -GOT:foo -POST: /v1/drivers/fake-hardware-type/vendor_passthru {'test_key': 'test_value'} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): driver.\", \"debuginfo\": null}"} +GET: /v1/drivers/test/properties {} +GOT:{'prop1': 'Property 1. Required.'} +GET: /v1/drivers/manual-management/properties {} +GOT:{'prop1': 'Property 1. Required.'} +GET: /v1/drivers/bad_driver/properties {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8fe7ed83-d00a-44bf-a083-d18d8a6aa8ab -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} -GOT:{'foo': 'bar'} -GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} -GOT:{'foo': 'bar'} -PUT: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-7730cd07-4504-4404-afc0-fc2c168b8f18 +Openstack-Request-Id: req-bd65baf9-c65f-4659-b086-e0d142fe09ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 - -POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): bad_driver.\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -Openstack-Request-Id: req-f01d2c33-b3ed-431e-917d-879d8d9366e8 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-a749ebab-ca67-4a23-a3e7-40a38c0789c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"return_key": "return_value"} -GET: /v1/drivers {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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?fields=name,hosts {} -GOT:{'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?fields=name,hosts&detail=false {} -GOT:{'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?detail=true&fields=name,hosts {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-fc1bd693-1d17-4523-abc5-4491483308b1 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/drivers?fields=name,invalid {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-f218ca7d-1ef4-4eb7-8410-ae643ff243e9 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/drivers?detail=True {} -GOT:Response: 406 Not Acceptable +{"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", "cpus": "8", "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -Openstack-Request-Id: req-965a700b-fbbc-4482-8503-ae9896d14605 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-0b0b9042-1fc7-49fd-b793-9eee7a2d42f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/drivers?detail=False {} +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:00.267007+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, "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", "cpus": "8", "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, "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 {} +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait ... ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals +ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_node_not_found +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_host_id +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_host_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_old_version +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_old_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits ... ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length +ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:32:56.305455+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'agent_secret_token': '******'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/test.1 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:32:56.553507+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': 'test.1', 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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?fields=owner {} +GOT:{'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'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=protected {} +GOT:{'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'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=retired {} +GOT:{'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'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} +GOT:{'storage_interface': None, '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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-d4ca0f55-c8eb-4c83-bec1-0fc026a8292d +Openstack-Request-Id: req-9b59c1a1-0743-4dc9-a602-6177fab2399c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/drivers/nope {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.32 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} +GOT:{'supported_boot_devices': ['pxe']} +GET: /v1/nodes/spam/management/boot_device/supported {} +GOT:{'supported_boot_devices': ['pxe']} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-97fb3563-d4a4-4b6f-a7b4-1828147fa491 +Openstack-Request-Id: req-6b6201cf-dc10-4c4a-85b3-f02068d1c31e X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/drivers/fake-hardware-type {} -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} +GOT:{'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'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api ... ok -ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume -ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address ... ok -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_not_allowed +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_iface_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_iface_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_multi +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_multi ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_vnic_type +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_vnic_type ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version ... ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest +ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_invalid_api ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_invalid_api ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node ... ok -ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces ... ok -GOT:Response: 400 Bad Request +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_with_name +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_with_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_versioning +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_versioning ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_device_id +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_device_id ... ok +ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_max_version +ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_max_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid ... ok +2024-01-07 05:33:01.997 22724 INFO alembic.runtime.migration [None req-dab1f9f9-a75c-47cc-b545-2a6df31206f8 - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:33:01.998 22724 INFO alembic.runtime.migration [None req-dab1f9f9-a75c-47cc-b545-2a6df31206f8 - - - - - -] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_with_detail +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_with_detail ... ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis ... ok +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_singular +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_singular ... ok +ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_min_version +ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_min_version ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_mac_address +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_mac_address ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_detail_and_fields +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_detail_and_fields ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:00.267007+00:00', 'updated_at': None, 'automated_clean': True, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': None, 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-68cc5fc1-3bb4-4efe-9a36-ca0a880703b0 +Openstack-Request-Id: req-d55efa57-931c-48fd-b6e5-be961d20cd6e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 42, 'uuid': '79585da6-298c-4630-81b7-ac3152eca8fe', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.32 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-28b4db62-ee3f-4fea-b1b9-8284f7c581c1 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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", "cpus": "8", "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {'uuid': '8fbc08bc-df12-494d-91b8-2201ed1215d5', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}} +ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header +ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url ... ok +PATCH: /v1/allocations/df2c145e-7385-45e2-9765-23fdf80b693f [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-527b8902-d9e5-4bd9-b8fc-36ef4f0de001 +Openstack-Request-Id: req-0a2ddcec-f232-4f46-a003-0122af3c1e93 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'string'\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': None, 'uuid': '9339bb5a-9140-427d-a528-f6c425db5b47', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +{"uuid": "df2c145e-7385-45e2-9765-23fdf80b693f", "created_at": "2024-01-06T15:32:59.579971+00:00", "updated_at": "2024-01-06T15:32:59.629530+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/df2c145e-7385-45e2-9765-23fdf80b693f", "rel": "self"}, {"href": "http://localhost/allocations/df2c145e-7385-45e2-9765-23fdf80b693f", "rel": "bookmark"}], "node_uuid": null} +PATCH: /v1/allocations/0eec15e6-3942-4fad-85d3-195ed772b942 [{'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-9a2d4165-a61d-4624-bf4e-0db461274a06 +Openstack-Request-Id: req-ff3b2d1e-f410-40bd-b6d2-23f721b9a5d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: None is not of type 'string'\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'ac74fcec-2c6a-4203-a756-803c3cfb9e4c', 'steps': {}, 'extra': {}} +{"uuid": "0eec15e6-3942-4fad-85d3-195ed772b942", "created_at": "2024-01-06T15:33:00.142724+00:00", "updated_at": "2024-01-06T15:33:00.179313+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/0eec15e6-3942-4fad-85d3-195ed772b942", "rel": "self"}, {"href": "http://localhost/allocations/0eec15e6-3942-4fad-85d3-195ed772b942", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/0eec15e6-3942-4fad-85d3-195ed772b942 {} +GOT:{'uuid': '0eec15e6-3942-4fad-85d3-195ed772b942', 'created_at': '2024-01-06T15:33:00.142724+00:00', 'updated_at': '2024-01-06T15:33:00.179313+00:00', 'candidate_nodes': [], 'extra': {'foo1': 'bar1', 'foo2': 'bar2'}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/0eec15e6-3942-4fad-85d3-195ed772b942', 'rel': 'self'}, {'href': 'http://localhost/allocations/0eec15e6-3942-4fad-85d3-195ed772b942', 'rel': 'bookmark'}], 'node_uuid': None} +PATCH: /v1/allocations/0014e6c1-abd3-4d09-b6f8-431f3704d2ed [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-66d2d777-13e5-4721-809a-e45b889c3129 +Openstack-Request-Id: req-52307e20-7440-4821-afb2-34d7bebd498e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: {} is not of type 'array'\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'bd087eef-a915-4622-b721-c6a3dfcdcad7', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': 'not a dict', 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: name, extra\", \"debuginfo\": null}"} +PATCH: /v1/allocations/65ea5721-7828-4dae-941c-ad39ee81da3f [{'path': '/extra/foo2', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e6d0caa3-5040-4295-a728-6a4ea96d0fd1 +Openstack-Request-Id: req-b83422c1-1798-4279-8be4-e3cade1b6e88 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a dict' is not of type 'object'\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '5e09db3f-eef2-46a4-a29d-adeae3dec5c1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +{"uuid": "65ea5721-7828-4dae-941c-ad39ee81da3f", "created_at": "2024-01-06T15:33:01.160773+00:00", "updated_at": "2024-01-06T15:33:01.188446+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/65ea5721-7828-4dae-941c-ad39ee81da3f", "rel": "self"}, {"href": "http://localhost/allocations/65ea5721-7828-4dae-941c-ad39ee81da3f", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/65ea5721-7828-4dae-941c-ad39ee81da3f {} +GOT:{'uuid': '65ea5721-7828-4dae-941c-ad39ee81da3f', 'created_at': '2024-01-06T15:33:01.160773+00:00', 'updated_at': '2024-01-06T15:33:01.188446+00:00', 'candidate_nodes': [], 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/65ea5721-7828-4dae-941c-ad39ee81da3f', 'rel': 'self'}, {'href': 'http://localhost/allocations/65ea5721-7828-4dae-941c-ad39ee81da3f', 'rel': 'bookmark'}], 'node_uuid': None} +PATCH: /v1/allocations/65ea5721-7828-4dae-941c-ad39ee81da3f [{'path': '/extra', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-40139ee4-fa78-4a9b-87b3-ca76f27a5fe7 +Openstack-Request-Id: req-4e60e75e-1ed9-465e-80f2-82c9aa5f9aa8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is not of type 'object'\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '16af5162-3818-49cf-bdc6-5d0650a67997', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10, 'foo': 'bar'}], 'extra': {}} +{"uuid": "65ea5721-7828-4dae-941c-ad39ee81da3f", "created_at": "2024-01-06T15:33:01.160773+00:00", "updated_at": "2024-01-06T15:33:01.259896+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/65ea5721-7828-4dae-941c-ad39ee81da3f", "rel": "self"}, {"href": "http://localhost/allocations/65ea5721-7828-4dae-941c-ad39ee81da3f", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/65ea5721-7828-4dae-941c-ad39ee81da3f {} +GOT:{'uuid': '65ea5721-7828-4dae-941c-ad39ee81da3f', 'created_at': '2024-01-06T15:33:01.160773+00:00', 'updated_at': '2024-01-06T15:33:01.259896+00:00', 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/65ea5721-7828-4dae-941c-ad39ee81da3f', 'rel': 'self'}, {'href': 'http://localhost/allocations/65ea5721-7828-4dae-941c-ad39ee81da3f', 'rel': 'bookmark'}], 'node_uuid': None} +PATCH: /v1/allocations/3d097ee7-85e5-4f1c-b7d0-805e8ba9ffc2 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-69451b8c-ce62-492b-86d0-e345e9b0dfa6 +Openstack-Request-Id: req-bb80a6d7-db16-48a0-a909-330b54c26d21 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'c9f705d5-9549-4d4d-af2d-71d0d01319e6', 'steps': [{'interface': [3], 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} +PATCH: /v1/allocations/1a4f0d83-adb9-4445-b15b-1f7c4492083b [{'path': '/extra/a', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-50db0d42-a084-4522-839c-9add5084a4b0 +Openstack-Request-Id: req-8b271640-01c9-429f-8707-f22f5e83bbbc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [3] is not of type 'string'\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '2f7615c6-e347-4658-bda5-e3e7fcfb918a', 'steps': [{'interface': 'foo', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +{"uuid": "1a4f0d83-adb9-4445-b15b-1f7c4492083b", "created_at": "2024-01-06T15:33:02.098609+00:00", "updated_at": "2024-01-06T15:33:02.127132+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/1a4f0d83-adb9-4445-b15b-1f7c4492083b", "rel": "self"}, {"href": "http://localhost/allocations/1a4f0d83-adb9-4445-b15b-1f7c4492083b", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/1a4f0d83-adb9-4445-b15b-1f7c4492083b {} +GOT:{'uuid': '1a4f0d83-adb9-4445-b15b-1f7c4492083b', 'created_at': '2024-01-06T15:33:02.098609+00:00', 'updated_at': '2024-01-06T15:33:02.127132+00:00', 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/1a4f0d83-adb9-4445-b15b-1f7c4492083b', 'rel': 'self'}, {'href': 'http://localhost/allocations/1a4f0d83-adb9-4445-b15b-1f7c4492083b', 'rel': 'bookmark'}], 'node_uuid': None} +PATCH: /v1/allocations/c0c476e3-ae6b-4ced-a6d2-04f8b191705f [{'path': '/uuid', 'op': 'remove'}] +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '1f25a9b1-47e6-4067-b186-0ee09bbdbad5', 'owner': None, 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-ef60703a-2074-4d23-83b8-da1dc6331194 +Location: http://localhost/v1/allocations/1f25a9b1-47e6-4067-b186-0ee09bbdbad5 +Openstack-Request-Id: req-d15e260d-52da-4ce6-96c5-829f6b709530 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'foo' is not one of ['power', 'management', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'ab49f417-2c29-4c05-b265-3f480733890a', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': -1}], 'extra': {}} -GOT:Response: 400 Bad Request +{"uuid": "1f25a9b1-47e6-4067-b186-0ee09bbdbad5", "created_at": "2024-01-06T15:32:59.599929+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/1f25a9b1-47e6-4067-b186-0ee09bbdbad5", "rel": "self"}, {"href": "http://localhost/allocations/1f25a9b1-47e6-4067-b186-0ee09bbdbad5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +GET: /v1/allocations/1f25a9b1-47e6-4067-b186-0ee09bbdbad5 {} +GOT:{'uuid': '1f25a9b1-47e6-4067-b186-0ee09bbdbad5', 'created_at': '2024-01-06T15:32:59.599929+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/1f25a9b1-47e6-4067-b186-0ee09bbdbad5', 'rel': 'self'}, {'href': 'http://localhost/allocations/1f25a9b1-47e6-4067-b186-0ee09bbdbad5', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +POST: /v1/allocations {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-f5d85709-27ea-4de8-8c02-512493cbfc86 +Location: http://localhost/v1/allocations/32159116-5062-4412-8a50-6d2434ca820b +Openstack-Request-Id: req-c077c6de-a81b-45d3-8f00-86bdcb255f4c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: -1 is less than the minimum of 0\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'aab02a7d-2820-44e4-92a4-ac08dd381d12', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 'not a number'}], 'extra': {}} +{"uuid": "32159116-5062-4412-8a50-6d2434ca820b", "created_at": "2024-01-06T15:33:00.154386+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/32159116-5062-4412-8a50-6d2434ca820b", "rel": "self"}, {"href": "http://localhost/allocations/32159116-5062-4412-8a50-6d2434ca820b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +GET: /v1/allocations/32159116-5062-4412-8a50-6d2434ca820b {} +GOT:{'uuid': '32159116-5062-4412-8a50-6d2434ca820b', 'created_at': '2024-01-06T15:33:00.154386+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'bm-super', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/32159116-5062-4412-8a50-6d2434ca820b', 'rel': 'self'}, {'href': 'http://localhost/allocations/32159116-5062-4412-8a50-6d2434ca820b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'e3d47f82-070b-4374-8af5-c20e9aa7b7e2', 'owner': None, 'node': 'a5d49dde-884a-46ba-929d-e1e9824b4786'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c3619815-a32c-4366-97f8-bc3791f475d0 +Openstack-Request-Id: req-68f3582a-cd98-4012-8338-f128a79b4eb3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a number' does not match '^[0-9]+$'\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '58d6caaa-97cb-4978-963a-eb169791c809', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node a5d49dde-884a-46ba-929d-e1e9824b4786 could not be found.\", \"debuginfo\": null}"} +POST: /v1/allocations {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-93d500e2-c19b-416b-9a72-bd6cb1f48910 +Openstack-Request-Id: req-1486df98-d202-43d1-9c7a-dadfa5def94f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'string'\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '79eb276c-175b-4c51-b18a-57a6276f3507', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_multi -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_multi ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name ... ok -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links ... ok -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_and -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_and ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi ... ok -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait ... ok -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean ... ok -GOT:{'chassis': [{'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/fd92745f-2ad9-4e41-8897-0ac3cf16d6fd', 'rel': 'self'}, {'href': 'http://localhost/chassis/fd92745f-2ad9-4e41-8897-0ac3cf16d6fd', 'rel': 'bookmark'}]}, {'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/eb5cd3eb-14a8-4d38-86ab-921b96659c08', 'rel': 'self'}, {'href': 'http://localhost/chassis/eb5cd3eb-14a8-4d38-86ab-921b96659c08', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=eb5cd3eb-14a8-4d38-86ab-921b96659c08'} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra {} -GOT:Response: 406 Not Acceptable +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}"} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'd121b8d5-fe79-4c8c-8f60-abf346e55b31', 'owner': None, 'node': 'backfill-me'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-b87bd348-bce8-42ec-9ea3-943cc0f46604 +Location: http://localhost/v1/allocations/d121b8d5-fe79-4c8c-8f60-abf346e55b31 +Openstack-Request-Id: req-b2716bcc-de73-4688-82e9-b267b1f1c86d X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,spongebob {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "d121b8d5-fe79-4c8c-8f60-abf346e55b31", "created_at": "2024-01-06T15:33:01.655837+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/d121b8d5-fe79-4c8c-8f60-abf346e55b31", "rel": "self"}, {"href": "http://localhost/allocations/d121b8d5-fe79-4c8c-8f60-abf346e55b31", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +GET: /v1/allocations/d121b8d5-fe79-4c8c-8f60-abf346e55b31 {} +GOT:{'uuid': 'd121b8d5-fe79-4c8c-8f60-abf346e55b31', 'created_at': '2024-01-06T15:33:01.655837+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/d121b8d5-fe79-4c8c-8f60-abf346e55b31', 'rel': 'self'}, {'href': 'http://localhost/allocations/d121b8d5-fe79-4c8c-8f60-abf346e55b31', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +POST: /v1/allocations {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-8f617a50-d004-4231-9dda-fa4dca8fcbac +Location: http://localhost/v1/allocations/6deca9df-0423-4b00-9c7a-041433e95768 +Openstack-Request-Id: req-b2ab417a-09d1-41c2-b6f5-47c1efb0b115 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2025-02-07T21:27:54.195831+00:00', 'updated_at': None, '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?fields=extra,description {} -GOT:{'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'}]} -GET: /v1/chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449 {} -GOT:{'uuid': 'ed7de52a-d0f2-4e65-aa82-479eaaca2449', 'created_at': '2025-02-07T21:27:54.716563+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449', 'rel': 'self'}, {'href': 'http://localhost/chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449/nodes', 'rel': 'bookmark'}]]} -GET: /v1/chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449 {} -GOT:{'uuid': 'ed7de52a-d0f2-4e65-aa82-479eaaca2449', 'created_at': '2025-02-07T21:27:54.716563+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449', 'rel': 'self'}, {'href': 'http://localhost/chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449/nodes', 'rel': 'bookmark'}]]} -GET: /chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449 {} -GOT:{'uuid': 'ed7de52a-d0f2-4e65-aa82-479eaaca2449', 'created_at': '2025-02-07T21:27:54.716563+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449', 'rel': 'self'}, {'href': 'http://localhost/chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/ed7de52a-d0f2-4e65-aa82-479eaaca2449/nodes', 'rel': 'bookmark'}]]} -GET: /v1/chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160 {} -GOT:{'uuid': '26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160', 'created_at': '2025-02-07T21:27:54.967066+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160', 'rel': 'self'}, {'href': 'http://foo/chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160/nodes', 'rel': 'bookmark'}]]} -GET: /v1/chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160 {} -GOT:{'uuid': '26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160', 'created_at': '2025-02-07T21:27:54.967066+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160', 'rel': 'self'}, {'href': 'http://foo/chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160/nodes', 'rel': 'bookmark'}]]} -GET: /chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160 {} -GOT:{'uuid': '26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160', 'created_at': '2025-02-07T21:27:54.967066+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160', 'rel': 'self'}, {'href': 'http://foo/chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/26e4e92c-26ac-40d3-9e6f-1f9c7bd5e160/nodes', 'rel': 'bookmark'}]]} -GET: /v1/chassis {} -GOT:{'chassis': [{'uuid': 'a56e72b2-ffbd-4684-bfd6-9917ade2b884', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/a56e72b2-ffbd-4684-bfd6-9917ade2b884', 'rel': 'self'}, {'href': 'http://localhost/chassis/a56e72b2-ffbd-4684-bfd6-9917ade2b884', 'rel': 'bookmark'}]}, {'uuid': 'd9ed299e-8f87-4b29-a7d9-406e8b76daf4', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/d9ed299e-8f87-4b29-a7d9-406e8b76daf4', 'rel': 'self'}, {'href': 'http://localhost/chassis/d9ed299e-8f87-4b29-a7d9-406e8b76daf4', 'rel': 'bookmark'}]}, {'uuid': '00c4c0d5-19bf-4120-93a6-68fef1a366ca', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/00c4c0d5-19bf-4120-93a6-68fef1a366ca', 'rel': 'self'}, {'href': 'http://localhost/chassis/00c4c0d5-19bf-4120-93a6-68fef1a366ca', 'rel': 'bookmark'}]}, {'uuid': 'a66886bd-9170-43c3-b157-6872c88d1595', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/a66886bd-9170-43c3-b157-6872c88d1595', 'rel': 'self'}, {'href': 'http://localhost/chassis/a66886bd-9170-43c3-b157-6872c88d1595', 'rel': 'bookmark'}]}, {'uuid': '871ff08f-8803-4040-87bd-cc275e7b7a58', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/871ff08f-8803-4040-87bd-cc275e7b7a58', 'rel': 'self'}, {'href': 'http://localhost/chassis/871ff08f-8803-4040-87bd-cc275e7b7a58', 'rel': 'bookmark'}]}]} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes {} -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id ... ok -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported ... ok +{"uuid": "6deca9df-0423-4b00-9c7a-041433e95768", "created_at": "2024-01-06T15:33:02.102953+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/6deca9df-0423-4b00-9c7a-041433e95768", "rel": "self"}, {"href": "http://localhost/allocations/6deca9df-0423-4b00-9c7a-041433e95768", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +GET: /v1/allocations/6deca9df-0423-4b00-9c7a-041433e95768 {} +GOT:{'uuid': '6deca9df-0423-4b00-9c7a-041433e95768', 'created_at': '2024-01-06T15:33:02.102953+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'bm-super', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/6deca9df-0423-4b00-9c7a-041433e95768', 'rel': 'self'}, {'href': 'http://localhost/allocations/6deca9df-0423-4b00-9c7a-041433e95768', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '143970e1-0751-4ede-be10-6ce346f1ea68', 'owner': None} +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version +ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_port_id +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_port_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields ... ok GET: /v1/conductors/?limit=3 {} -GOT:{'conductors': [{'hostname': 'bd6e453d-2e77-4fd9-9522-8862900d5719', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/bd6e453d-2e77-4fd9-9522-8862900d5719', 'rel': 'self'}, {'href': 'http://localhost/conductors/bd6e453d-2e77-4fd9-9522-8862900d5719', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '424623c2-b06b-4569-9364-c8db178be60f', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/424623c2-b06b-4569-9364-c8db178be60f', 'rel': 'self'}, {'href': 'http://localhost/conductors/424623c2-b06b-4569-9364-c8db178be60f', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '4559ed32-33ba-4691-937e-fbc811b13cc4', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/4559ed32-33ba-4691-937e-fbc811b13cc4', 'rel': 'self'}, {'href': 'http://localhost/conductors/4559ed32-33ba-4691-937e-fbc811b13cc4', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=4559ed32-33ba-4691-937e-fbc811b13cc4'} +GOT:{'conductors': [{'hostname': 'fb72d57c-f08c-4e87-88e2-eb286bb195e7', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/fb72d57c-f08c-4e87-88e2-eb286bb195e7', 'rel': 'self'}, {'href': 'http://localhost/conductors/fb72d57c-f08c-4e87-88e2-eb286bb195e7', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '5fbbc5de-03b5-48d0-920c-97489c26758a', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/5fbbc5de-03b5-48d0-920c-97489c26758a', 'rel': 'self'}, {'href': 'http://localhost/conductors/5fbbc5de-03b5-48d0-920c-97489c26758a', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'd2d4068e-f38c-4150-adf5-d849fbc08faa', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/d2d4068e-f38c-4150-adf5-d849fbc08faa', 'rel': 'self'}, {'href': 'http://localhost/conductors/d2d4068e-f38c-4150-adf5-d849fbc08faa', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=d2d4068e-f38c-4150-adf5-d849fbc08faa'} GET: /v1/conductors?fields=hostname,alive {} -GOT:{'conductors': [{'hostname': '659714a9-57c1-4f88-90c3-42aa3b486314', 'links': [{'href': 'http://localhost/v1/conductors/659714a9-57c1-4f88-90c3-42aa3b486314', 'rel': 'self'}, {'href': 'http://localhost/conductors/659714a9-57c1-4f88-90c3-42aa3b486314', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '27cd6e01-1534-4e02-a0aa-1f6f89427b19', 'links': [{'href': 'http://localhost/v1/conductors/27cd6e01-1534-4e02-a0aa-1f6f89427b19', 'rel': 'self'}, {'href': 'http://localhost/conductors/27cd6e01-1534-4e02-a0aa-1f6f89427b19', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'dde1b238-0951-4d9c-b31b-a4e8b16b66e2', 'links': [{'href': 'http://localhost/v1/conductors/dde1b238-0951-4d9c-b31b-a4e8b16b66e2', 'rel': 'self'}, {'href': 'http://localhost/conductors/dde1b238-0951-4d9c-b31b-a4e8b16b66e2', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=dde1b238-0951-4d9c-b31b-a4e8b16b66e2'} +GOT:{'conductors': [{'hostname': '06e870ba-6037-4c29-a943-cd11c9a86919', 'links': [{'href': 'http://localhost/v1/conductors/06e870ba-6037-4c29-a943-cd11c9a86919', 'rel': 'self'}, {'href': 'http://localhost/conductors/06e870ba-6037-4c29-a943-cd11c9a86919', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '75ca99f4-02b0-4a5e-9cae-48a1d09f5cc7', 'links': [{'href': 'http://localhost/v1/conductors/75ca99f4-02b0-4a5e-9cae-48a1d09f5cc7', 'rel': 'self'}, {'href': 'http://localhost/conductors/75ca99f4-02b0-4a5e-9cae-48a1d09f5cc7', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '5e4d4451-1ce8-4a18-ab16-f7156a0b6229', 'links': [{'href': 'http://localhost/v1/conductors/5e4d4451-1ce8-4a18-ab16-f7156a0b6229', 'rel': 'self'}, {'href': 'http://localhost/conductors/5e4d4451-1ce8-4a18-ab16-f7156a0b6229', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=5e4d4451-1ce8-4a18-ab16-f7156a0b6229'} GET: /v1/conductors {} -GOT:{'conductors': [{'hostname': '3e17ff84-c166-440d-aa80-00f29139b9c9', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/3e17ff84-c166-440d-aa80-00f29139b9c9', 'rel': 'self'}, {'href': 'http://localhost/conductors/3e17ff84-c166-440d-aa80-00f29139b9c9', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '4c388d7b-d83f-4712-9dd3-2fadb3c0c559', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/4c388d7b-d83f-4712-9dd3-2fadb3c0c559', 'rel': 'self'}, {'href': 'http://localhost/conductors/4c388d7b-d83f-4712-9dd3-2fadb3c0c559', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'c054a362-0f5a-41a3-9874-fa885e0376d1', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/c054a362-0f5a-41a3-9874-fa885e0376d1', 'rel': 'self'}, {'href': 'http://localhost/conductors/c054a362-0f5a-41a3-9874-fa885e0376d1', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=c054a362-0f5a-41a3-9874-fa885e0376d1'} +GOT:{'conductors': [{'hostname': '19e5bb94-27e1-4734-b6c2-f8e2bf4acbc2', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/19e5bb94-27e1-4734-b6c2-f8e2bf4acbc2', 'rel': 'self'}, {'href': 'http://localhost/conductors/19e5bb94-27e1-4734-b6c2-f8e2bf4acbc2', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '3d72ed13-11c7-48b8-a9a0-5112ebdb7418', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/3d72ed13-11c7-48b8-a9a0-5112ebdb7418', 'rel': 'self'}, {'href': 'http://localhost/conductors/3d72ed13-11c7-48b8-a9a0-5112ebdb7418', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '1803ad00-0cbf-4b83-9cd2-be4640f23562', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/1803ad00-0cbf-4b83-9cd2-be4640f23562', 'rel': 'self'}, {'href': 'http://localhost/conductors/1803ad00-0cbf-4b83-9cd2-be4640f23562', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=1803ad00-0cbf-4b83-9cd2-be4640f23562'} GET: /v1/conductors {} GOT:{'conductors': []} GET: /v1/conductors?fields=hostname,alive {} @@ -6906,13 +6822,13 @@ GET: /v1/conductors/rocky.rocks?fields=hostname,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-96e90443-31c9-4b76-abca-22ac31d2a515 +Openstack-Request-Id: req-d1a9860f-363e-4ad7-8fc5-a7f8839673d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/conductors/rocky.rocks {} -GOT:{'created_at': '2025-02-07T21:27:54.168837+00:00', 'updated_at': '2025-02-07T21:27:54.168505+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} +GOT:{'created_at': '2024-01-06T15:33:00.183322+00:00', 'updated_at': '2024-01-06T15:33:00.182968+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 {} GOT:{'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} GET: /v1/conductors/rocky.rocks?fields=hostname,alive {} @@ -6920,2084 +6836,1494 @@ GET: /v1/conductors/rocky.rocks {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c456763b-5cc1-4ae7-9f2c-b643788f964e +Openstack-Request-Id: req-e125831f-afab-4c57-9e23-5a7229b4d785 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} GET: /v1/conductors/rocky.rocks {} -GOT:{'created_at': '2025-02-07T21:27:55.172442+00:00', 'updated_at': '2025-02-07T21:27:55.172166+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} +GOT:{'created_at': '2024-01-06T15:33:01.914320+00:00', 'updated_at': '2024-01-06T15:33:01.914048+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 {} -GOT:{'created_at': '2025-02-07T21:27:55.172442+00:00', 'updated_at': '2025-02-07T21:27:55.172166+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} +GOT:{'created_at': '2024-01-06T15:33:01.914320+00:00', 'updated_at': '2024-01-06T15:33:01.914048+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 {} -GOT:{'created_at': '2025-02-07T21:27:55.172442+00:00', 'updated_at': '2025-02-07T21:27:55.172166+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} +GOT:{'created_at': '2024-01-06T15:33:01.914320+00:00', 'updated_at': '2024-01-06T15:33:01.914048+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 {} -GOT:{'created_at': '2025-02-07T21:27:55.474620+00:00', 'updated_at': '2025-02-07T21:27:55.474370+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} +GOT:{'created_at': '2024-01-06T15:33:02.357751+00:00', 'updated_at': '2024-01-06T15:33:02.357462+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 {} -GOT:{'created_at': '2025-02-07T21:27:55.474620+00:00', 'updated_at': '2025-02-07T21:27:55.474370+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} +GOT:{'created_at': '2024-01-06T15:33:02.357751+00:00', 'updated_at': '2024-01-06T15:33:02.357462+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 {} -GOT:{'created_at': '2025-02-07T21:27:55.474620+00:00', 'updated_at': '2025-02-07T21:27:55.474370+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} +GOT:{'created_at': '2024-01-06T15:33:02.357751+00:00', 'updated_at': '2024-01-06T15:33:02.357462+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 {} -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args ... ok -GOT:{'nodes': [{'uuid': 'cc64e110-168d-4f22-907e-6dc1fc347d8e', 'instance_uuid': '9d1720cb-bed3-4bdc-b0fa-c438718c2779', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/cc64e110-168d-4f22-907e-6dc1fc347d8e', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc64e110-168d-4f22-907e-6dc1fc347d8e', 'rel': 'bookmark'}]}, {'uuid': '2b94f0da-ee31-4f23-a1dc-c881e8a691c1', 'instance_uuid': 'd7f12162-3715-4b52-ac7d-d97fc296ce0a', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/2b94f0da-ee31-4f23-a1dc-c881e8a691c1', 'rel': 'self'}, {'href': 'http://localhost/nodes/2b94f0da-ee31-4f23-a1dc-c881e8a691c1', 'rel': 'bookmark'}]}, {'uuid': '90fdbe1a-30e8-4066-947a-1f7a84558897', 'instance_uuid': 'd15ef1b2-bc6f-43ee-bdc9-1e732e9086f0', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/90fdbe1a-30e8-4066-947a-1f7a84558897', 'rel': 'self'}, {'href': 'http://localhost/nodes/90fdbe1a-30e8-4066-947a-1f7a84558897', 'rel': 'bookmark'}]}, {'uuid': 'f2f1ef54-6001-4bdc-9a1f-d78e885f0936', 'instance_uuid': '6382fed2-bdb5-4e08-b862-486a5e0044d8', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/f2f1ef54-6001-4bdc-9a1f-d78e885f0936', 'rel': 'self'}, {'href': 'http://localhost/nodes/f2f1ef54-6001-4bdc-9a1f-d78e885f0936', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=True {} -GOT:{'nodes': [{'uuid': 'cc64e110-168d-4f22-907e-6dc1fc347d8e', 'instance_uuid': '9d1720cb-bed3-4bdc-b0fa-c438718c2779', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/cc64e110-168d-4f22-907e-6dc1fc347d8e', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc64e110-168d-4f22-907e-6dc1fc347d8e', 'rel': 'bookmark'}]}, {'uuid': '2b94f0da-ee31-4f23-a1dc-c881e8a691c1', 'instance_uuid': 'd7f12162-3715-4b52-ac7d-d97fc296ce0a', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/2b94f0da-ee31-4f23-a1dc-c881e8a691c1', 'rel': 'self'}, {'href': 'http://localhost/nodes/2b94f0da-ee31-4f23-a1dc-c881e8a691c1', 'rel': 'bookmark'}]}, {'uuid': '90fdbe1a-30e8-4066-947a-1f7a84558897', 'instance_uuid': 'd15ef1b2-bc6f-43ee-bdc9-1e732e9086f0', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/90fdbe1a-30e8-4066-947a-1f7a84558897', 'rel': 'self'}, {'href': 'http://localhost/nodes/90fdbe1a-30e8-4066-947a-1f7a84558897', 'rel': 'bookmark'}]}, {'uuid': 'f2f1ef54-6001-4bdc-9a1f-d78e885f0936', 'instance_uuid': '6382fed2-bdb5-4e08-b862-486a5e0044d8', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/f2f1ef54-6001-4bdc-9a1f-d78e885f0936', 'rel': 'self'}, {'href': 'http://localhost/nodes/f2f1ef54-6001-4bdc-9a1f-d78e885f0936', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/?limit=3 {} -GOT:{'nodes': [{'uuid': '221b47a8-b85b-4a29-a093-7c98c277519f', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/221b47a8-b85b-4a29-a093-7c98c277519f', 'rel': 'self'}, {'href': 'http://localhost/nodes/221b47a8-b85b-4a29-a093-7c98c277519f', 'rel': 'bookmark'}]}, {'uuid': 'db2c64eb-506c-49ab-87ff-3ba9f0a8d184', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/db2c64eb-506c-49ab-87ff-3ba9f0a8d184', 'rel': 'self'}, {'href': 'http://localhost/nodes/db2c64eb-506c-49ab-87ff-3ba9f0a8d184', 'rel': 'bookmark'}]}, {'uuid': 'f16dc30b-4d78-4c37-a74d-3eb4fb21f555', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/f16dc30b-4d78-4c37-a74d-3eb4fb21f555', 'rel': 'self'}, {'href': 'http://localhost/nodes/f16dc30b-4d78-4c37-a74d-3eb4fb21f555', '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=f16dc30b-4d78-4c37-a74d-3eb4fb21f555'} -GET: /v1/nodes?fields=driver_info,uuid {} -GOT:{'nodes': [{'uuid': 'ef33aec2-eba9-4a9e-842b-0575b5a1a045', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/ef33aec2-eba9-4a9e-842b-0575b5a1a045', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef33aec2-eba9-4a9e-842b-0575b5a1a045', 'rel': 'bookmark'}]}, {'uuid': '6160bcea-beae-4252-8f6d-e7b31e862e20', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/6160bcea-beae-4252-8f6d-e7b31e862e20', 'rel': 'self'}, {'href': 'http://localhost/nodes/6160bcea-beae-4252-8f6d-e7b31e862e20', 'rel': 'bookmark'}]}, {'uuid': 'aa70a031-91ca-483c-b4d1-fabb5d2f10f3', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/aa70a031-91ca-483c-b4d1-fabb5d2f10f3', 'rel': 'self'}, {'href': 'http://localhost/nodes/aa70a031-91ca-483c-b4d1-fabb5d2f10f3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=aa70a031-91ca-483c-b4d1-fabb5d2f10f3'} -GET: /v1/nodes {} -GOT:{'nodes': [{'uuid': '2575112d-c65a-43a6-b496-bcdbae39fafc', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/2575112d-c65a-43a6-b496-bcdbae39fafc', 'rel': 'self'}, {'href': 'http://localhost/nodes/2575112d-c65a-43a6-b496-bcdbae39fafc', 'rel': 'bookmark'}]}, {'uuid': 'ab2798ef-d0e6-4408-8592-384229a6b317', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/ab2798ef-d0e6-4408-8592-384229a6b317', 'rel': 'self'}, {'href': 'http://localhost/nodes/ab2798ef-d0e6-4408-8592-384229a6b317', 'rel': 'bookmark'}]}, {'uuid': '2ef3e108-f4e2-41f2-a165-568756fba937', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/2ef3e108-f4e2-41f2-a165-568756fba937', 'rel': 'self'}, {'href': 'http://localhost/nodes/2ef3e108-f4e2-41f2-a165-568756fba937', '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=2ef3e108-f4e2-41f2-a165-568756fba937'} -GET: /v1/nodes?instance_uuid=27539106-4951-42b5-acbe-e3a2cff41ade {} -GOT:{'nodes': [{'uuid': '1204b161-e9dd-49ef-b4ab-05d3884b7f6c', 'instance_uuid': '27539106-4951-42b5-acbe-e3a2cff41ade', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1204b161-e9dd-49ef-b4ab-05d3884b7f6c', 'rel': 'self'}, {'href': 'http://localhost/nodes/1204b161-e9dd-49ef-b4ab-05d3884b7f6c', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail {} +ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr +ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list ... ok -GOT:{'allocations': [{'uuid': '17f6e16b-8842-444f-94e6-663e5ba9c883', 'created_at': '2025-02-07T21:27:53.946425+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation0', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/17f6e16b-8842-444f-94e6-663e5ba9c883', 'rel': 'self'}, {'href': 'http://localhost/allocations/17f6e16b-8842-444f-94e6-663e5ba9c883', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '6528fc89-2937-4dcb-b2aa-557ceb04e1d4', 'created_at': '2025-02-07T21:27:53.948095+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/6528fc89-2937-4dcb-b2aa-557ceb04e1d4', 'rel': 'self'}, {'href': 'http://localhost/allocations/6528fc89-2937-4dcb-b2aa-557ceb04e1d4', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'a28d22f5-5494-4924-ab30-985476dbe842', 'created_at': '2025-02-07T21:27:53.949493+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/a28d22f5-5494-4924-ab30-985476dbe842', 'rel': 'self'}, {'href': 'http://localhost/allocations/a28d22f5-5494-4924-ab30-985476dbe842', 'rel': 'bookmark'}], 'node_uuid': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=a28d22f5-5494-4924-ab30-985476dbe842'} -GET: /v1/allocations?fields=uuid,extra {} -GOT:{'allocations': [{'uuid': 'ba45484a-92ac-4355-929b-143d703791c8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/ba45484a-92ac-4355-929b-143d703791c8', 'rel': 'self'}, {'href': 'http://localhost/allocations/ba45484a-92ac-4355-929b-143d703791c8', 'rel': 'bookmark'}]}, {'uuid': 'f110fda6-b23a-4628-8146-deef8b50abb1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/f110fda6-b23a-4628-8146-deef8b50abb1', 'rel': 'self'}, {'href': 'http://localhost/allocations/f110fda6-b23a-4628-8146-deef8b50abb1', 'rel': 'bookmark'}]}, {'uuid': '41b4265b-f82a-4680-9bec-f365802a268e', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/41b4265b-f82a-4680-9bec-f365802a268e', 'rel': 'self'}, {'href': 'http://localhost/allocations/41b4265b-f82a-4680-9bec-f365802a268e', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=41b4265b-f82a-4680-9bec-f365802a268e'} -GET: /v1/allocations {} -GOT:{'allocations': [{'uuid': 'f544fa6a-307f-44d1-a523-9e8bd2b09ccd', 'created_at': '2025-02-07T21:27:54.429631+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation0', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/f544fa6a-307f-44d1-a523-9e8bd2b09ccd', 'rel': 'self'}, {'href': 'http://localhost/allocations/f544fa6a-307f-44d1-a523-9e8bd2b09ccd', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '821473c3-300d-4160-b9e9-0c0e63f3301a', 'created_at': '2025-02-07T21:27:54.431091+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/821473c3-300d-4160-b9e9-0c0e63f3301a', 'rel': 'self'}, {'href': 'http://localhost/allocations/821473c3-300d-4160-b9e9-0c0e63f3301a', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '105264a9-122a-4abd-8aaf-2af847c4a408', 'created_at': '2025-02-07T21:27:54.432412+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/105264a9-122a-4abd-8aaf-2af847c4a408', 'rel': 'self'}, {'href': 'http://localhost/allocations/105264a9-122a-4abd-8aaf-2af847c4a408', 'rel': 'bookmark'}], 'node_uuid': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=105264a9-122a-4abd-8aaf-2af847c4a408'} -GET: /v1/allocations {} -GOT:{'allocations': []} -GET: /v1/allocations?node=node-1 {} -GOT:{'allocations': [{'uuid': '6ab2c54f-8e5d-406f-86d9-c2956e369643', 'created_at': '2025-02-07T21:27:54.946936+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation0', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/6ab2c54f-8e5d-406f-86d9-c2956e369643', 'rel': 'self'}, {'href': 'http://localhost/allocations/6ab2c54f-8e5d-406f-86d9-c2956e369643', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'a5691674-0285-4c24-99e5-1e7cb73c6fdc', 'created_at': '2025-02-07T21:27:54.948981+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/a5691674-0285-4c24-99e5-1e7cb73c6fdc', 'rel': 'self'}, {'href': 'http://localhost/allocations/a5691674-0285-4c24-99e5-1e7cb73c6fdc', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'fccda861-e8d4-47a9-9b6e-3d0f690152db', 'created_at': '2025-02-07T21:27:54.950971+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/fccda861-e8d4-47a9-9b6e-3d0f690152db', 'rel': 'self'}, {'href': 'http://localhost/allocations/fccda861-e8d4-47a9-9b6e-3d0f690152db', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/allocations?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'allocations': [{'uuid': 'c6776a4c-e09a-4ab6-8d1f-732786dc75a5', 'created_at': '2025-02-07T21:27:55.306566+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/c6776a4c-e09a-4ab6-8d1f-732786dc75a5', 'rel': 'self'}, {'href': 'http://localhost/allocations/c6776a4c-e09a-4ab6-8d1f-732786dc75a5', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/allocations?node=banana {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-a20f94fa-e634-4ec2-b50e-cb06759e50e1 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node banana could not be found.\", \"debuginfo\": null}"} -GET: /v1/allocations?owner=12345 {} -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_singular -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_singular ... ok -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args_kwargs -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args_kwargs ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_bad_invalid_agent_status -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_bad_invalid_agent_status ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single ... ok -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_function -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_function ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link ... ok -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled ... ok -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_kwargs -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_kwargs ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node ... ok -PATCH: /v1/allocations/8c7b9be4-9838-4af1-add7-a5d1b2d20fbc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-c194a462-5c3d-4392-ae29-5177651c3343 +POST: /v1/events {'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-d68bbab1-0697-44f3-ae43-6c9ec008ed08 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "8c7b9be4-9838-4af1-add7-a5d1b2d20fbc", "created_at": "2025-02-07T21:27:54.264183+00:00", "updated_at": "2025-02-07T21:27:54.297684+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/8c7b9be4-9838-4af1-add7-a5d1b2d20fbc", "rel": "self"}, {"href": "http://localhost/allocations/8c7b9be4-9838-4af1-add7-a5d1b2d20fbc", "rel": "bookmark"}], "node_uuid": null} -PATCH: /v1/allocations/b1a10532-1498-4e51-845b-de3b49528392 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}] -GOT:Response: 200 OK + +POST: /v1/events {'events': [{'INVALID': 'fake.event'}]} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-3bac51e3-aedf-4bbf-8b01-849f8b8272b0 +Openstack-Request-Id: req-9d39ea3b-3081-4bbf-a2e9-0cab85858f5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b1a10532-1498-4e51-845b-de3b49528392", "created_at": "2025-02-07T21:27:54.533032+00:00", "updated_at": "2025-02-07T21:27:54.564994+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/b1a10532-1498-4e51-845b-de3b49528392", "rel": "self"}, {"href": "http://localhost/allocations/b1a10532-1498-4e51-845b-de3b49528392", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/b1a10532-1498-4e51-845b-de3b49528392 {} -GOT:{'uuid': 'b1a10532-1498-4e51-845b-de3b49528392', 'created_at': '2025-02-07T21:27:54.533032+00:00', 'updated_at': '2025-02-07T21:27:54.564994+00:00', 'candidate_nodes': [], 'extra': {'foo1': 'bar1', 'foo2': 'bar2'}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/b1a10532-1498-4e51-845b-de3b49528392', 'rel': 'self'}, {'href': 'http://localhost/allocations/b1a10532-1498-4e51-845b-de3b49528392', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/allocations/4dfaaf2d-0368-4dfb-ae4a-f1f5bb561ab2 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"} +POST: /v1/events {'events': [{'event': 'invalid.event'}]} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-bfe51f2c-873e-407d-983d-407b64f69152 +Openstack-Request-Id: req-0624ff40-350e-4d88-841b-ad813a22a75a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: name, extra\", \"debuginfo\": null}"} -PATCH: /v1/allocations/516909d0-91f4-4b93-a87c-1a7200b4d0ea [{'path': '/extra/foo2', 'op': 'remove'}] -GOT:Response: 200 OK +{"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}"} +POST: /v1/events {'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-6bbc69d1-3cc9-4fe8-8390-1ad162dcdc3f +Openstack-Request-Id: req-513a5218-6644-4d12-8d49-921ea213b3e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "516909d0-91f4-4b93-a87c-1a7200b4d0ea", "created_at": "2025-02-07T21:27:55.097850+00:00", "updated_at": "2025-02-07T21:27:55.121576+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/516909d0-91f4-4b93-a87c-1a7200b4d0ea", "rel": "self"}, {"href": "http://localhost/allocations/516909d0-91f4-4b93-a87c-1a7200b4d0ea", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/516909d0-91f4-4b93-a87c-1a7200b4d0ea {} -GOT:{'uuid': '516909d0-91f4-4b93-a87c-1a7200b4d0ea', 'created_at': '2025-02-07T21:27:55.097850+00:00', 'updated_at': '2025-02-07T21:27:55.121576+00:00', 'candidate_nodes': [], 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/516909d0-91f4-4b93-a87c-1a7200b4d0ea', 'rel': 'self'}, {'href': 'http://localhost/allocations/516909d0-91f4-4b93-a87c-1a7200b4d0ea', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/allocations/516909d0-91f4-4b93-a87c-1a7200b4d0ea [{'path': '/extra', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-4878d85d-920a-4468-9e21-d73e18e204d8 +X-Openstack-Ironic-Api-Version: 1.50 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +POST: /v1/events {'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-503b0ffa-0ab8-4798-871e-b363fd756c58 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "516909d0-91f4-4b93-a87c-1a7200b4d0ea", "created_at": "2025-02-07T21:27:55.097850+00:00", "updated_at": "2025-02-07T21:27:55.153745+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/516909d0-91f4-4b93-a87c-1a7200b4d0ea", "rel": "self"}, {"href": "http://localhost/allocations/516909d0-91f4-4b93-a87c-1a7200b4d0ea", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/516909d0-91f4-4b93-a87c-1a7200b4d0ea {} -GOT:{'uuid': '516909d0-91f4-4b93-a87c-1a7200b4d0ea', 'created_at': '2025-02-07T21:27:55.097850+00:00', 'updated_at': '2025-02-07T21:27:55.153745+00:00', 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/516909d0-91f4-4b93-a87c-1a7200b4d0ea', 'rel': 'self'}, {'href': 'http://localhost/allocations/516909d0-91f4-4b93-a87c-1a7200b4d0ea', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/allocations/5bf9f591-993d-4fb8-a1a7-3697cbc8890f [{'path': '/extra/non-existent', 'op': 'remove'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-7bdb697e-12ac-4412-a348-ba056b57ea2b + +POST: /v1/events {'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-272c0d27-3cab-4a09-9d1c-354ef3c810b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} -PATCH: /v1/allocations/b94f88e5-f1b7-499b-aa51-b2906c06cddd [{'path': '/extra/a', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-4046cd5f-6962-431b-8670-a5cbf67666c8 + +POST: /v1/events {'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-cf735e83-a530-4ccf-b206-a37368b51627 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b94f88e5-f1b7-499b-aa51-b2906c06cddd", "created_at": "2025-02-07T21:27:55.695945+00:00", "updated_at": "2025-02-07T21:27:55.728194+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/b94f88e5-f1b7-499b-aa51-b2906c06cddd", "rel": "self"}, {"href": "http://localhost/allocations/b94f88e5-f1b7-499b-aa51-b2906c06cddd", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/b94f88e5-f1b7-499b-aa51-b2906c06cddd {} -GOT:{'uuid': 'b94f88e5-f1b7-499b-aa51-b2906c06cddd', 'created_at': '2025-02-07T21:27:55.695945+00:00', 'updated_at': '2025-02-07T21:27:55.728194+00:00', 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/b94f88e5-f1b7-499b-aa51-b2906c06cddd', 'rel': 'self'}, {'href': 'http://localhost/allocations/b94f88e5-f1b7-499b-aa51-b2906c06cddd', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/allocations/fac0c1d9-3b1c-4226-bdef-3cf111f8a880 [{'path': '/uuid', 'op': 'remove'}] -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name ... ok + +POST: /v1/events {'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-741e25b0-bc56-4921-8ab3-c081bde2c30b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/ports {'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': 'Ethernet1/15'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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-6d7a64f8-c60d-4cc2-8e4d-8bb62e4ca983 +Openstack-Request-Id: req-a99a38f4-9f37-4605-a8e8-8100fabf0038 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:53.974390+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +{"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}"} +POST: /v1/events {'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-3f109295-49de-41f0-91d1-eb6f3f9a6d8a +Openstack-Request-Id: req-916bfb15-8ce3-4157-ae82-e16c07f28729 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address or OpenFlow datapath ID but received zz:zz:zz:zz:zz:zz.\", \"debuginfo\": null}"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-d4765973-8db1-4456-ab29-217a1fa1ea45 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:54.553516+00:00", "updated_at": null, "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"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'] is not of type 'string', 'null'\", \"debuginfo\": null}"} +POST: /v1/events {'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-bd486509-b3a4-487f-9880-02ef6adb1b59 +Openstack-Request-Id: req-517b16bb-0df2-4e05-bb49-52e09b71d3ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'address' is a required property\", \"debuginfo\": null}"} -POST: /v1/ports {'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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for device_id: DEVICE_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} +POST: /v1/events {'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-150e6a77-0ae8-405e-bdaf-6458c4d300a3 +Openstack-Request-Id: req-7af7f1fd-e454-4b2e-9e82-b3800b84c9c3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/ports {'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, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for mac_address: INVALID_MAC_ADDRESS\", \"debuginfo\": null}"} +POST: /v1/events {'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-18c1390c-2418-46a1-8d8c-a6b876be32ab -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -POST: /v1/ports {'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': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-e7fd8893-fc3f-45e6-95ee-690188ffc8a7 +Openstack-Request-Id: req-da234f1b-4245-4f31-aa8f-874260130e54 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:55.721500+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -POST: /v1/ports {'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': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_invalid +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_does_not_contain_event +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_does_not_contain_event ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_status +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_status ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found ... ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings +ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields_old_version +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields_old_version ... ok +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found ... ok +DELETE: /v1/ports/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-404f4a13-accd-4fb3-91d8-71cc99085d59 +Openstack-Request-Id: req-a9edbf0e-977e-458d-96d2-932b92a0d573 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': '', 'op': 'replace'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-165cd6ff-30e6-4a69-85d7-b9b88ea2821a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 1234, 'op': 'replace'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-d995000f-1259-4051-b355-5cb21f2ce3a8 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_uuid: 52:54:00:cf:2d:31\", \"debuginfo\": null}"} +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 204 No Content +Openstack-Request-Id: req-cefea62b-a915-409d-9a2a-6be056a21c78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'op': 'replace'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 + +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-17ce1db0-0a3c-441b-a2a6-87335a839183 +Openstack-Request-Id: req-69387787-585c-4234-a964-2b0f3d35825a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/3b164b93-dafc-4cb6-9809-d9423c0d2005 [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] +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}"} +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/e21e7148-7428-4403-af1a-76bf898dc34e GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-44912887-2367-4f1a-bd50-ac2f39ef145f +Openstack-Request-Id: req-82f1619e-19c8-414d-86f3-8942627c7aee X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/ports/97aaa778-dcb0-4361-b30b-325ddcc9ee13 [{'path': '/local_link_connection/network_type', 'op': 'remove'}] -GOT:Response: 200 OK +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=af627947-8d50-4627-8acb-554d2666ec3d {} +GOT:{'node': {'uuid': 'af627947-8d50-4627-8acb-554d2666ec3d', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/af627947-8d50-4627-8acb-554d2666ec3d', 'rel': 'self'}, {'href': 'http://localhost/nodes/af627947-8d50-4627-8acb-554d2666ec3d', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'abcxyz', 'agent_token_required': True}} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=af627947-8d50-4627-8acb-554d2666ec3d {} +GOT:{'node': {'uuid': 'af627947-8d50-4627-8acb-554d2666ec3d', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/af627947-8d50-4627-8acb-554d2666ec3d', 'rel': 'self'}, {'href': 'http://localhost/nodes/af627947-8d50-4627-8acb-554d2666ec3d', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': '******', 'agent_token_required': True}} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=af627947-8d50-4627-8acb-554d2666ec3d {} +GOT:{'node': {'uuid': 'af627947-8d50-4627-8acb-554d2666ec3d', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/af627947-8d50-4627-8acb-554d2666ec3d', 'rel': 'self'}, {'href': 'http://localhost/nodes/af627947-8d50-4627-8acb-554d2666ec3d', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': '******', 'agent_token_required': True}} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} +GOT:{'node': {'uuid': 'cb9a64c7-7bb5-4dbb-83b3-161193cb4308', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/cb9a64c7-7bb5-4dbb-83b3-161193cb4308', 'rel': 'self'}, {'href': 'http://localhost/nodes/cb9a64c7-7bb5-4dbb-83b3-161193cb4308', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'some-value', 'agent_token_required': True}} +GET: /v1/lookup?node_uuid=c53eb7fb-b279-445b-b5b2-f983fc8ac2d1 {} +GOT:{'node': {'uuid': 'c53eb7fb-b279-445b-b5b2-f983fc8ac2d1', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/c53eb7fb-b279-445b-b5b2-f983fc8ac2d1', 'rel': 'self'}, {'href': 'http://localhost/nodes/c53eb7fb-b279-445b-b5b2-f983fc8ac2d1', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'xyzabc', 'agent_token_required': True}} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=eb5304cc-5741-4129-81b2-d0b9dfa71e74 {} +GOT:{'node': {'uuid': 'eb5304cc-5741-4129-81b2-d0b9dfa71e74', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/eb5304cc-5741-4129-81b2-d0b9dfa71e74', 'rel': 'self'}, {'href': 'http://localhost/nodes/eb5304cc-5741-4129-81b2-d0b9dfa71e74', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'this_thing_on?', 'agent_token_required': True}} +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 {} +GOT:{'node': {'uuid': 'bfd77b15-f24f-44ce-b97f-2f37d6ce2e3a', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/bfd77b15-f24f-44ce-b97f-2f37d6ce2e3a', 'rel': 'self'}, {'href': 'http://localhost/nodes/bfd77b15-f24f-44ce-b97f-2f37d6ce2e3a', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': '123456', 'agent_token_required': True}} +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_001_values +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_001_values ... skipped 'These are fake reference values for YAML templating' +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbid_owner_proj_mismatch +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbid_owner_proj_mismatch ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unbind_port_events +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unbind_port_events ... ok +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_name_with_none +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_name_with_none ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unknown_event_property +ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unknown_event_property ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_singular +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_singular ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden_no_project +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden_no_project ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_002_nodes_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_002_nodes_post_admin ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-75b511e4-036d-489b-abdb-e37a41576d2d +Openstack-Request-Id: req-66ca91ec-11ea-4bc2-8fbe-2cb778ad6a04 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.64 -{"uuid": "97aaa778-dcb0-4361-b30b-325ddcc9ee13", "created_at": "2025-02-07T21:27:54.146428+00:00", "updated_at": "2025-02-07T21:27:54.179829+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, "links": [{"href": "http://localhost/v1/ports/97aaa778-dcb0-4361-b30b-325ddcc9ee13", "rel": "self"}, {"href": "http://localhost/ports/97aaa778-dcb0-4361-b30b-325ddcc9ee13", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/network_type', 'op': 'remove'}] +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}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} +GOT:{'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'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} +GOT:{'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'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-09e09634-dd5d-408b-aaf0-9141a9e726bd +Openstack-Request-Id: req-af9fcb0c-5455-4cc5-ba88-47571d062ed5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.63 +X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/switch_id', 'op': 'remove'}] -GOT:Response: 406 Not Acceptable +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=allocation_uuid {} +GOT:{'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': 'cc0a10db-0aa2-42ff-9986-03cc2fc6792d'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:03.718337+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:03.718337+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:04.423427+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_no_registry +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_no_registry ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-0fe02fa4-9196-4fe7-a19b-25cf0141a163 +Location: http://localhost/v1/nodes/8fbc08bc-df12-494d-91b8-2201ed1215d5 +Openstack-Request-Id: req-a9d6bcf3-9b3e-4d01-a6f1-2063aab389c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'op': 'remove'}] +{"uuid": "8fbc08bc-df12-494d-91b8-2201ed1215d5", "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", "cpus": "8", "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/8fbc08bc-df12-494d-91b8-2201ed1215d5", "rel": "self"}, {"href": "http://localhost/nodes/8fbc08bc-df12-494d-91b8-2201ed1215d5", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8fbc08bc-df12-494d-91b8-2201ed1215d5/ports", "rel": "self"}, {"href": "http://localhost/nodes/8fbc08bc-df12-494d-91b8-2201ed1215d5/ports", "rel": "bookmark"}]} +GET: /v1/nodes/8fbc08bc-df12-494d-91b8-2201ed1215d5 {} +GOT:{'uuid': '8fbc08bc-df12-494d-91b8-2201ed1215d5', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/8fbc08bc-df12-494d-91b8-2201ed1215d5', 'rel': 'self'}, {'href': 'http://localhost/nodes/8fbc08bc-df12-494d-91b8-2201ed1215d5', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/8fbc08bc-df12-494d-91b8-2201ed1215d5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8fbc08bc-df12-494d-91b8-2201ed1215d5/ports', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-1f16ca64-aeee-4dcb-8466-7a2729f9a17d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-5a6f4b34-a348-4e96-beb3-e4776b6089ac +Openstack-Request-Id: req-cbc90311-aab6-48e1-ae57-5863e4157ec7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:55.265344+00:00", "updated_at": "2025-02-07T21:27:55.312765+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -Openstack-Request-Id: req-988aad71-c78a-4a39-8cfe-97e212360de0 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-0fc962eb-4269-410a-b43a-b37045cb5814 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:55.265344+00:00", "updated_at": "2025-02-07T21:27:55.353534+00:00", "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"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-1c0fd7b3-a096-4bd7-b385-eb60b7a855b6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-311d6dfc-9ed6-429b-b5a0-43b6131bf20c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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 a non-existent object 'non-existent'\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version ... ok -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/allocations/9b89942c-d471-4211-91ef-9e6674178396 -Openstack-Request-Id: req-24ccb6b3-3e89-4d33-a711-5f64d24c32db +X-Openstack-Ironic-Api-Version: 1.11 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:03.667360+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", "cpus": "8", "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:03.667360+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_bad_invalid_agent_status +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_bad_invalid_agent_status ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_error +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_error ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_non_admin +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_non_admin ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_none +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_none ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found ... ok +DELETE: /v1/allocations/056787d7-bda6-4548-bb29-6a23e1ffbcf2 +GOT:Response: 204 No Content +Openstack-Request-Id: req-bdf54a89-a853-4b34-8572-8716ebd342a3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "9b89942c-d471-4211-91ef-9e6674178396", "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/9b89942c-d471-4211-91ef-9e6674178396", "rel": "self"}, {"href": "http://localhost/allocations/9b89942c-d471-4211-91ef-9e6674178396", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/9b89942c-d471-4211-91ef-9e6674178396 {} -GOT:{'uuid': '9b89942c-d471-4211-91ef-9e6674178396', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/9b89942c-d471-4211-91ef-9e6674178396', 'rel': 'self'}, {'href': 'http://localhost/allocations/9b89942c-d471-4211-91ef-9e6674178396', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '50ceb9d2-fa8e-42a6-aba1-afa09aa57bb9', 'owner': None} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-5ed300d7-9806-4176-b17c-4c0885641c95 + +DELETE: /v1/allocations/alloc1 +GOT:Response: 204 No Content +Openstack-Request-Id: req-822dfb18-ad4b-413e-9825-ecb607166712 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: this/is/not a/node/name\", \"debuginfo\": null}"} -POST: /v1/allocations {'candidate_nodes': ['1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '99692be2-e559-4281-8150-cb891b4c2760', 'owner': None} -GOT:Response: 400 Bad Request + +DELETE: /v1/allocations/blah +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b8795a3c-cf2a-4569-ac53-9f6e15e578a3 +Openstack-Request-Id: req-0366c7d0-001b-48d1-b6e3-e579933db256 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e\", \"debuginfo\": null}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {'foo': 123}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '4962e8d9-4e6f-47b7-9c7d-6196b4dfeb59', 'owner': None} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/allocations/4962e8d9-4e6f-47b7-9c7d-6196b4dfeb59 -Openstack-Request-Id: req-3bf3f06f-d556-4015-864e-baaddc21c9fa +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation blah could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/allocations/alloc1.json +GOT:Response: 204 No Content +Openstack-Request-Id: req-e5e19bfd-7e16-49ba-91be-988e37e5553c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "4962e8d9-4e6f-47b7-9c7d-6196b4dfeb59", "created_at": "2025-02-07T21:27:54.480641+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/4962e8d9-4e6f-47b7-9c7d-6196b4dfeb59", "rel": "self"}, {"href": "http://localhost/allocations/4962e8d9-4e6f-47b7-9c7d-6196b4dfeb59", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/4962e8d9-4e6f-47b7-9c7d-6196b4dfeb59 {} -GOT:{'uuid': '4962e8d9-4e6f-47b7-9c7d-6196b4dfeb59', 'created_at': '2025-02-07T21:27:54.480641+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {'foo': 123}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/4962e8d9-4e6f-47b7-9c7d-6196b4dfeb59', 'rel': 'self'}, {'href': 'http://localhost/allocations/4962e8d9-4e6f-47b7-9c7d-6196b4dfeb59', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'b2972a44-aec8-460e-a883-62f0daf8161d', 'owner': None} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-9afa7ac7-d618-40a1-994b-3229ec5a92e2 + +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation +GOT:Response: 204 No Content +Openstack-Request-Id: req-fbd48166-2cbd-46ae-8b32-52c498b42ed1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'owner': None} -GOT:Response: 201 Created + +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\": \"\"}"} +DELETE: /v1/nodes/705f6926-c2b2-4884-a3fc-296f037f9da0/allocation +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/allocations/64db19bd-d9c3-48a3-b981-5259495e454d -Openstack-Request-Id: req-9dacfb34-5798-4ff8-b0c8-25e85719ed39 +Openstack-Request-Id: req-dcfe94ef-be17-4a07-8229-3d94baa973fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "64db19bd-d9c3-48a3-b981-5259495e454d", "created_at": "2025-02-07T21:27:55.280062+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/64db19bd-d9c3-48a3-b981-5259495e454d", "rel": "self"}, {"href": "http://localhost/allocations/64db19bd-d9c3-48a3-b981-5259495e454d", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/64db19bd-d9c3-48a3-b981-5259495e454d {} -GOT:{'uuid': '64db19bd-d9c3-48a3-b981-5259495e454d', 'created_at': '2025-02-07T21:27:55.280062+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/64db19bd-d9c3-48a3-b981-5259495e454d', 'rel': 'self'}, {'href': 'http://localhost/allocations/64db19bd-d9c3-48a3-b981-5259495e454d', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'aa5e1a03-1ef3-4d76-92fc-9cf4a22435aa', 'owner': None} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation for node 705f6926-c2b2-4884-a3fc-296f037f9da0 was not found\", \"debuginfo\": null}"} +DELETE: /v1/allocations/6cfde2b9-32ca-478b-ae80-3cec80fd03a7 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\"}"} -POST: /v1/allocations {'candidate_nodes': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'b4d659a0-1e8f-4f29-84e3-b17e4df46b66', 'owner': None} -GOT:Response: 400 Bad Request +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\"}"} +DELETE: /v1/nodes/cb036d28-fd1c-4876-9af2-656ca6c9babf/allocation +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6ecaa3f4-ae24-4f83-a821-cb07e5cbb536 +Openstack-Request-Id: req-45ed7f19-67ba-4af5-9184-3d0eec679b1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: invalid-format\", \"debuginfo\": null}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'FOO_BAR'], 'uuid': '6caf744c-c33c-406c-805a-ffa220879b4f', 'owner': None} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node cb036d28-fd1c-4876-9af2-656ca6c9babf could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/allocations/96277a85-63f1-466e-a06a-9b98f4df3613 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-60278acf-fffe-4668-888b-c4c331c91adb +Openstack-Request-Id: req-c3122b15-a2fd-46cc-bbca-f54d27205b38 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': 'aa:bb_cc', 'resource_class': 'baremetal', 'traits': [], 'uuid': '47142e23-af9b-4d94-ba55-7885404e9114', 'owner': None} -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked -ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked ... ok -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mac_address -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mac_address ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one ... ok -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class ... ok -GOT:{'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_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['direct', 'ansible'], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': []} -GET: /v1/drivers/fake-hardware-type {} -GOT:{'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 {} -GOT:{'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/properties {} -GET: /drivers/fake-hardware-type/properties {} -GET: /v1/drivers/fake-hardware-type {} -GOT:{'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_storage_interface': None, 'enabled_storage_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['direct', 'ansible'], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': []} -GET: /v1/drivers/fake-hardware-type {} -GOT:{'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 {} -GOT:{'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/properties {} -GET: /drivers/fake-hardware-type/properties {} -GET: /v1/drivers {} -GOT:{'drivers': []} -GET: /v1/drivers?type=working {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-2d5b8750-9bfa-4617-88c5-0c7aa4ef1dcb +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} +POST: /v1/events {'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-53124def-df2b-47f6-af47-e1780e79583b X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/drivers?type=classic {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 + +POST: /v1/events {'events': [{'INVALID': 'fake.event'}]} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e9bbb795-5cc4-4b3c-bc9d-fdb40fb52516 +Openstack-Request-Id: req-0405f048-23a8-4e99-a3b4-1b83650e6845 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/drivers?type=classic {} -GOT:{'drivers': []} -GET: /v1/drivers?type=dynamic {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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?detail=True {} -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory ... ok -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_status_and_status -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_status_and_status ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id ... ok -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:27:55.585974+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/detail {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"} +POST: /v1/events {'events': [{'event': 'invalid.event'}]} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-87d14c34-5c4a-4c5b-b670-c735fc4e00b4 +Openstack-Request-Id: req-c1ebd3da-4149-4f53-a281-e2da8609fbea X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/detail {} -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.80 +{"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}"} +POST: /v1/events {'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-b6e5dffc-322f-4646-826b-261c8f108e50 +Openstack-Request-Id: req-63490a40-481a-4b27-9f97-cfc532be46ce X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/detail?instance_uuid=6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:27:56.578028+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': '6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d', 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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?instance_uuid=6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d {} -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_name_with_none -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_name_with_none ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_match -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_match ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_priority -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_priority ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_token -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_token ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version ... ok -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_singular -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_singular ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_step -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_step ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_not_match -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_not_match ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_verify_ca -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_verify_ca ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_auto_filled -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_auto_filled ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_custom_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_custom_fields_invalid_api_version ... ok -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_event_missing_madatory_field -ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_event_missing_madatory_field ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbid_project_mismatch -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbid_project_mismatch ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup ... ok -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/deploy_templates/79eb276c-175b-4c51-b18a-57a6276f3507 -Openstack-Request-Id: req-5467e4a2-8659-4fb3-89a9-e98d986e9998 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +POST: /v1/events {'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-ae9866e8-a814-4c55-8541-32c3590c81c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "79eb276c-175b-4c51-b18a-57a6276f3507", "created_at": "2025-02-07T21:27:55.160092+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/79eb276c-175b-4c51-b18a-57a6276f3507", "rel": "self"}, {"href": "http://localhost/deploy_templates/79eb276c-175b-4c51-b18a-57a6276f3507", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -POST: /v1/deploy_templates {'name': 'not-a-trait', 'uuid': 'b75c4a64-4fff-4de6-93e2-93fd42f5dc56', '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-aeb17fb8-b5dc-4fbf-940f-a981bfd86ced + +POST: /v1/events {'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-90e68898-60e8-4c50-97fb-ef87643d3ad5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '1d3dd20c-31fb-4793-9675-1658825c736c', '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-a4c13eb4-b348-4882-9555-7b0ea2e98fa7 + +POST: /v1/events {'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-22faadfd-971c-4be5-b233-0d42bdf59ac3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'uuid': '0dc81bad-9bc9-4f4e-b235-6620bf398bcc', '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-bc596ace-e882-47b1-9df6-79811d7ba31d + +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_host_id +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_host_id ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_003_nodes_post_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_003_nodes_post_member ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_hidden_in_lower_version ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_fields +ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_fields ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail ... ok +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} +GOT:Response: 204 No Content +Location: http://localhost/v1/nodes/node-39/traits/CUSTOM_3 +Openstack-Request-Id: req-b5861b51-2b55-4319-aad2-6288d1894982 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'name' is a required property\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '4ce3dc6b-c293-49d6-84c4-0e98bda4d50e', 'extra': {}} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.37 + +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-d2adb130-b590-4fd3-8999-8595e5599165 +Openstack-Request-Id: req-4abe355d-4501-4975-88ec-b9ece3534ec9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'steps' is a required property\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '8506f0b6-f651-4db6-aa9a-562a25a8158c', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} -GOT:Response: 400 Bad Request +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}"} +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-321d53bd-9f11-43d2-8baa-54b972f8bd97 +Openstack-Request-Id: req-de5f3d61-e353-492c-9198-713dd49fc2a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'args' is a required property\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'e18cabea-17a3-45da-b0bd-35d4da5eba42', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-fb05943e-fbff-4cae-b44e-689478bd079e +Openstack-Request-Id: req-1fcf068d-c2cb-4bc0-b2ac-b1d3fae7b0af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'interface' is a required property\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '72e27c29-abe8-4ab0-b4dd-d6f178a8b493', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"too many traits\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 {} +GOT:Response: 405 Method Not Allowed +Allow: DELETE, GET, PATCH, POST +Content-Type: application/json +{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} +PUT: /v1/nodes/node-39/traits/bad_trait {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5ddc8fd2-bc4f-4f61-b78d-066172272f99 +Openstack-Request-Id: req-62c831a6-40a0-412a-ba7e-7d74aa9e2149 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'priority' is a required property\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'c3a5974b-ad34-4602-96e5-a155d90ad7a7', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +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}"} +PUT: /v1/nodes/node-39/traits/CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-9ab665be-569c-4358-8d91-dce7e21c7698 +Openstack-Request-Id: req-8e3daeb8-a05d-4f84-88b2-7aeedceebaba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'step' is a required property\", \"debuginfo\": null}"} -POST: /v1/deploy_templates {'name': 'HW_CPU_X86_VMX', 'uuid': '3812bc45-a213-40fd-9827-4efd3e7704f6', '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/3812bc45-a213-40fd-9827-4efd3e7704f6 -Openstack-Request-Id: req-f641ed7c-0f00-4c3c-a94c-573cc9d49649 +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for trait: 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT' is too long\", \"debuginfo\": null}"} +DELETE: /v1/nodes/node-39/traits +GOT:Response: 204 No Content +Openstack-Request-Id: req-3ee10a03-a89d-4173-866e-64372380e212 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "3812bc45-a213-40fd-9827-4efd3e7704f6", "created_at": "2025-02-07T21:27:57.549283+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/3812bc45-a213-40fd-9827-4efd3e7704f6", "rel": "self"}, {"href": "http://localhost/deploy_templates/3812bc45-a213-40fd-9827-4efd3e7704f6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '24d50e95-a3c4-4f08-9bd5-447e4daef0a9', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': '42'}], 'extra': {}} -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_error -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_error ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_event_type -ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_event_type ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_allowed -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_custom_fields ... ok -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.37 + +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-a91ea469-d604-497f-88b7-110548a32b69 +Openstack-Request-Id: req-24a2fde3-8a57-4033-8bae-209625ba81a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:56.079739+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -POST: /v1/ports {'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': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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-d23361b3-bd6a-46e4-99e0-6f8c7303f675 +X-Openstack-Ironic-Api-Version: 1.36 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/node-39/traits +GOT:Response: 204 No Content +Openstack-Request-Id: req-b4c45af2-64cd-4c7f-bacc-373a82e48c34 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:56.430125+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-7e87921a-7db7-45e6-a0da-7c8b28029ce6 +X-Openstack-Ironic-Api-Version: 1.37 + +DELETE: /v1/nodes/node-39/traits/CUSTOM_1 +GOT:Response: 204 No Content +Openstack-Request-Id: req-74bc4944-8e0d-4768-a109-df79a72e4475 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:56.717031+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +X-Openstack-Ironic-Api-Version: 1.37 + +DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-2113ba85-247c-4758-99fe-e6321a15243a +Openstack-Request-Id: req-234d4b57-40c0-45e8-b592-f09cf0046851 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +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}"} +DELETE: /v1/nodes/node-39/traits/CUSTOM_1 +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-cdb1b86f-6591-4c0b-bd5e-77f4311dcc11 +Openstack-Request-Id: req-22524919-f8f2-4f9e-a290-35f46e09a60d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:57.327772+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/node-39/traits/CUSTOM_12 +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-5200236b-5361-4709-a8c5-548e3c62fc48 +Openstack-Request-Id: req-528ef220-af77-487d-9fb2-98a122e0f240 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:57.616827+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -POST: /v1/ports {'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, 'node_uuid': 'd5a1dba7-ef94-4321-bb87-508e55398342', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi ... ok -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string_list -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string_list ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_mac_network_port_event -ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_mac_network_port_event ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_unexpected_args -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_unexpected_args ... ok -GOT:{'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_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['direct', 'ansible'], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_console_interface': None, '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_deploy_interface': None, 'enabled_deploy_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': []}]} -GET: /v1/drivers/fake-hardware-type {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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?detail=True {} -GOT:{'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_storage_interface': None, 'enabled_storage_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['direct', 'ansible'], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_console_interface': None, '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_storage_interface': None, 'enabled_storage_interfaces': [], 'default_deploy_interface': None, 'enabled_deploy_interfaces': [], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': []}]} -GET: /v1/drivers/fake-hardware-type {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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?fields=name,hosts {} -GOT:Response: 406 Not Acceptable +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}"} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7435b2c8-af0e-40b8-b43f-4d49a92689be +Openstack-Request-Id: req-b275f7dd-53fb-4a74-a54d-ad79466c0532 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {} +X-Openstack-Ironic-Api-Version: 1.36 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} +GOT:{'traits': ['CUSTOM_1', 'CUSTOM_2']} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-f9f7044d-ab65-44f2-a301-b1d3fdbd96a9 +Openstack-Request-Id: req-84e006f4-93af-45b5-88fd-3c8a1aa58f41 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.76 +X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/drivers/fake-hardware-type?fields=name,hosts {} -GOT:{'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?fields=name,invalid {} -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_invalid_custom_fields -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_invalid_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_missing_mandatory_fields_network_port_event -ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_missing_mandatory_fields_network_port_event ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_my_projet_id -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_my_projet_id ... ok -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:27:56.929647+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': '6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d', 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': '46c0bf8a-846d-49a5-9724-5a61a5efa6bf', 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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?instance_uuid=6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d {} -GOT:{'nodes': []} -GET: /v1/nodes/detail?project=54321 {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-60df1df4-a79e-4ac2-8dff-45427d5c0eaf -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/nodes/detail {} -GOT:{'nodes': [{'uuid': '1d32ff77-a45e-43fa-9762-0b2b1255b9cf', 'created_at': '2025-02-07T21:27:57.900609+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': '12345', 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1d32ff77-a45e-43fa-9762-0b2b1255b9cf', 'rel': 'self'}, {'href': 'http://localhost/nodes/1d32ff77-a45e-43fa-9762-0b2b1255b9cf', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1d32ff77-a45e-43fa-9762-0b2b1255b9cf/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1d32ff77-a45e-43fa-9762-0b2b1255b9cf/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1d32ff77-a45e-43fa-9762-0b2b1255b9cf/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1d32ff77-a45e-43fa-9762-0b2b1255b9cf/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1d32ff77-a45e-43fa-9762-0b2b1255b9cf/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1d32ff77-a45e-43fa-9762-0b2b1255b9cf/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1d32ff77-a45e-43fa-9762-0b2b1255b9cf/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1d32ff77-a45e-43fa-9762-0b2b1255b9cf/volume', 'rel': 'bookmark'}]}, {'uuid': 'c2b7f14b-69cb-43f7-aba1-d44326d54504', 'created_at': '2025-02-07T21:27:57.906104+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': '12345', 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/c2b7f14b-69cb-43f7-aba1-d44326d54504', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2b7f14b-69cb-43f7-aba1-d44326d54504', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/c2b7f14b-69cb-43f7-aba1-d44326d54504/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2b7f14b-69cb-43f7-aba1-d44326d54504/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c2b7f14b-69cb-43f7-aba1-d44326d54504/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2b7f14b-69cb-43f7-aba1-d44326d54504/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c2b7f14b-69cb-43f7-aba1-d44326d54504/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2b7f14b-69cb-43f7-aba1-d44326d54504/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c2b7f14b-69cb-43f7-aba1-d44326d54504/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2b7f14b-69cb-43f7-aba1-d44326d54504/volume', 'rel': 'bookmark'}]}, {'uuid': '76fd0da7-7ba2-4875-846e-8653a7b15a45', 'created_at': '2025-02-07T21:27:57.911490+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': '12345', 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/76fd0da7-7ba2-4875-846e-8653a7b15a45', 'rel': 'self'}, {'href': 'http://localhost/nodes/76fd0da7-7ba2-4875-846e-8653a7b15a45', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/76fd0da7-7ba2-4875-846e-8653a7b15a45/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/76fd0da7-7ba2-4875-846e-8653a7b15a45/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/76fd0da7-7ba2-4875-846e-8653a7b15a45/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/76fd0da7-7ba2-4875-846e-8653a7b15a45/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/76fd0da7-7ba2-4875-846e-8653a7b15a45/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/76fd0da7-7ba2-4875-846e-8653a7b15a45/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/76fd0da7-7ba2-4875-846e-8653a7b15a45/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/76fd0da7-7ba2-4875-846e-8653a7b15a45/volume', 'rel': 'bookmark'}]}, {'uuid': '9c33b650-21a8-47ca-945b-77b57566eb62', 'created_at': '2025-02-07T21:27:57.916806+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': '12345', 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/9c33b650-21a8-47ca-945b-77b57566eb62', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c33b650-21a8-47ca-945b-77b57566eb62', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/9c33b650-21a8-47ca-945b-77b57566eb62/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c33b650-21a8-47ca-945b-77b57566eb62/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/9c33b650-21a8-47ca-945b-77b57566eb62/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c33b650-21a8-47ca-945b-77b57566eb62/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/9c33b650-21a8-47ca-945b-77b57566eb62/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c33b650-21a8-47ca-945b-77b57566eb62/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/9c33b650-21a8-47ca-945b-77b57566eb62/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c33b650-21a8-47ca-945b-77b57566eb62/volume', 'rel': 'bookmark'}]}, {'uuid': '00a8186e-2b0f-4687-80a2-b46904b815b2', 'created_at': '2025-02-07T21:27:57.921720+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': '12345', 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/00a8186e-2b0f-4687-80a2-b46904b815b2', 'rel': 'self'}, {'href': 'http://localhost/nodes/00a8186e-2b0f-4687-80a2-b46904b815b2', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/00a8186e-2b0f-4687-80a2-b46904b815b2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/00a8186e-2b0f-4687-80a2-b46904b815b2/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/00a8186e-2b0f-4687-80a2-b46904b815b2/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/00a8186e-2b0f-4687-80a2-b46904b815b2/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/00a8186e-2b0f-4687-80a2-b46904b815b2/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/00a8186e-2b0f-4687-80a2-b46904b815b2/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/00a8186e-2b0f-4687-80a2-b46904b815b2/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/00a8186e-2b0f-4687-80a2-b46904b815b2/volume', 'rel': 'bookmark'}]}, {'uuid': '8df0dc1d-cd48-4cb1-91f0-9c50daa003e6', 'created_at': '2025-02-07T21:27:57.926697+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': '12345', 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/8df0dc1d-cd48-4cb1-91f0-9c50daa003e6', 'rel': 'self'}, {'href': 'http://localhost/nodes/8df0dc1d-cd48-4cb1-91f0-9c50daa003e6', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/8df0dc1d-cd48-4cb1-91f0-9c50daa003e6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8df0dc1d-cd48-4cb1-91f0-9c50daa003e6/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/8df0dc1d-cd48-4cb1-91f0-9c50daa003e6/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/8df0dc1d-cd48-4cb1-91f0-9c50daa003e6/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/8df0dc1d-cd48-4cb1-91f0-9c50daa003e6/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/8df0dc1d-cd48-4cb1-91f0-9c50daa003e6/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/8df0dc1d-cd48-4cb1-91f0-9c50daa003e6/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/8df0dc1d-cd48-4cb1-91f0-9c50daa003e6/volume', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found ... ok -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden_no_project -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden_no_project ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_simple_event_type -ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_simple_event_type ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_owner_not_acceptable -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_owner_not_acceptable ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_verify_ca_error -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_verify_ca_error ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found ... ok -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid_or_name -ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid_or_name ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__add_ip_addresses_for_ipv6_stateful -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__add_ip_addresses_for_ipv6_stateful ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_does_not_contain_event -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_does_not_contain_event ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url ... ok -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-aaac1834-785b-4b51-8f37-8104c2e5bb8b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': 'foo', 'resource_class': 'baremetal', 'traits': [], 'uuid': '93b4f13b-887e-46f1-a383-0dd2ec6fd1ba', 'owner': None} -GOT:Response: 201 Created +GET: /v1/nodes/badname/traits {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/allocations/93b4f13b-887e-46f1-a383-0dd2ec6fd1ba -Openstack-Request-Id: req-d9191b91-0b05-4252-acbf-0072b602ec46 +Openstack-Request-Id: req-8fdf5990-63b3-4bb4-a61c-82bf53d5dcef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "93b4f13b-887e-46f1-a383-0dd2ec6fd1ba", "created_at": "2025-02-07T21:27:56.621686+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/93b4f13b-887e-46f1-a383-0dd2ec6fd1ba", "rel": "self"}, {"href": "http://localhost/allocations/93b4f13b-887e-46f1-a383-0dd2ec6fd1ba", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/93b4f13b-887e-46f1-a383-0dd2ec6fd1ba {} -GOT:{'uuid': '93b4f13b-887e-46f1-a383-0dd2ec6fd1ba', 'created_at': '2025-02-07T21:27:56.621686+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'foo', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/93b4f13b-887e-46f1-a383-0dd2ec6fd1ba', 'rel': 'self'}, {'href': 'http://localhost/allocations/93b4f13b-887e-46f1-a383-0dd2ec6fd1ba', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': '0396bb8b-c023-41e4-91c3-2c5e5c29214f', 'owner': None} +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node badname could not be found.\", \"debuginfo\": null}"} +PUT: /v1/nodes/node-39/traits {'trait': 'CUSTOM_3'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e7f81ccd-b6eb-4764-8d7f-1eeb0354f628 +Openstack-Request-Id: req-e60b82a6-56d7-4890-8197-bcd2c3aa7447 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource_class field is mandatory when not backfilling\", \"debuginfo\": null}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'b0fe8aa7-d9f9-4376-a1e0-8c5b4c41d1c8', 'owner': '12345'} +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}"} +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {'traits': ['CUSTOM_3']} +ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_links +ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_links ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_null_field +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_null_field ... ok GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/allocations/b0fe8aa7-d9f9-4376-a1e0-8c5b4c41d1c8 -Openstack-Request-Id: req-9d36c40f-299b-408f-8315-25fc1aff14b4 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-8adb98fd-9aee-4291-9dd2-084952f9b2ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b0fe8aa7-d9f9-4376-a1e0-8c5b4c41d1c8", "created_at": "2025-02-07T21:27:57.118498+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/b0fe8aa7-d9f9-4376-a1e0-8c5b4c41d1c8", "rel": "self"}, {"href": "http://localhost/allocations/b0fe8aa7-d9f9-4376-a1e0-8c5b4c41d1c8", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/b0fe8aa7-d9f9-4376-a1e0-8c5b4c41d1c8 {} -GOT:{'uuid': 'b0fe8aa7-d9f9-4376-a1e0-8c5b4c41d1c8', 'created_at': '2025-02-07T21:27:57.118498+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/b0fe8aa7-d9f9-4376-a1e0-8c5b4c41d1c8', 'rel': 'self'}, {'href': 'http://localhost/allocations/b0fe8aa7-d9f9-4376-a1e0-8c5b4c41d1c8', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '263297e5-d0bd-4fff-b0d9-ff07e842088b', 'owner': None} +X-Openstack-Ironic-Api-Version: 1.10 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:04.643304+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", "cpus": "8", "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:04.643304+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:04.643304+00:00', 'updated_at': None, 'clean_step': {}, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/allocations/263297e5-d0bd-4fff-b0d9-ff07e842088b -Openstack-Request-Id: req-1846a644-9adc-4a2c-9d1c-1bc9b4b432c4 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-eef1ecc6-2c52-4e68-b1a3-08c532bde07c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "263297e5-d0bd-4fff-b0d9-ff07e842088b", "created_at": "2025-02-07T21:27:57.434495+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/263297e5-d0bd-4fff-b0d9-ff07e842088b", "rel": "self"}, {"href": "http://localhost/allocations/263297e5-d0bd-4fff-b0d9-ff07e842088b", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/263297e5-d0bd-4fff-b0d9-ff07e842088b {} -GOT:{'uuid': '263297e5-d0bd-4fff-b0d9-ff07e842088b', 'created_at': '2025-02-07T21:27:57.434495+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '123456', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/263297e5-d0bd-4fff-b0d9-ff07e842088b', 'rel': 'self'}, {'href': 'http://localhost/allocations/263297e5-d0bd-4fff-b0d9-ff07e842088b', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '4cd3cd19-8801-4e42-aa03-2b7be9e0cc5e', 'owner': '12345'} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-ad32e9fc-93c5-4071-b4fd-17d14f68d079 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '883a230c-c55d-4a9c-95d9-27c536399c8b', 'owner': '12345'} -GOT:Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:05.759375+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, "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", "cpus": "8", "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, "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 {} +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait ... ok +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-50658cdf-e9f7-4858-9c90-161456610795 +Openstack-Request-Id: req-ff27d1e8-a0bd-4e15-908b-25158c208b2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with an owner Project ID value 12345 not matching the requestor Project ID 0987. Policy baremetal:allocation:create_restricted is required for this capability.\", \"debuginfo\": null}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'traits': [], 'uuid': '1a436182-31ba-4d4f-85f6-75a197f7d90e', 'owner': None} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-ab32f030-b70d-4090-b36b-1202451c0b56 +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}"} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 204 No Content +Openstack-Request-Id: req-0ab23432-bec5-4d70-9fb5-bd2d3baf9de4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' is too long\", \"debuginfo\": null}"} -POST: /v1/allocations {'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': '30012149-d19f-4103-ad66-3cc7965b9d8a', 'owner': None} -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_get_next -ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_get_next ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_valid_extra -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_valid_extra ... ok -ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client -ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node ... ok -ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_has_next -ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_has_next ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs -ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name ... ok -GOT:{'allocations': [{'uuid': '71f0b637-dfe9-4618-a4bf-d1dcb340de57', 'created_at': '2025-02-07T21:27:55.835966+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation0', 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/71f0b637-dfe9-4618-a4bf-d1dcb340de57', 'rel': 'self'}, {'href': 'http://localhost/allocations/71f0b637-dfe9-4618-a4bf-d1dcb340de57', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'a360cc4f-c010-4aad-968e-0e4eec731def', 'created_at': '2025-02-07T21:27:55.837609+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/a360cc4f-c010-4aad-968e-0e4eec731def', 'rel': 'self'}, {'href': 'http://localhost/allocations/a360cc4f-c010-4aad-968e-0e4eec731def', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'ee624fb2-b907-46be-8176-8a2e7dbc3933', 'created_at': '2025-02-07T21:27:55.839063+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/ee624fb2-b907-46be-8176-8a2e7dbc3933', 'rel': 'self'}, {'href': 'http://localhost/allocations/ee624fb2-b907-46be-8176-8a2e7dbc3933', 'rel': 'bookmark'}], 'node_uuid': None}]} -GET: /v1/allocations?owner=12345 {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-472fe180-8b07-42b6-a4af-fcd64dd75c74 +X-Openstack-Ironic-Api-Version: 1.1 + +DELETE: /v1/nodes/foo.1 +GOT:Response: 204 No Content +Openstack-Request-Id: req-bef2fa08-05d9-43f7-b1e3-6c0a7abcef2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/allocations?state=allocating {} -GOT:{'allocations': [{'uuid': '3da3892f-c22e-40dd-a5cc-ccc326e023fb', 'created_at': '2025-02-07T21:27:56.407475+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation0', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/3da3892f-c22e-40dd-a5cc-ccc326e023fb', 'rel': 'self'}, {'href': 'http://localhost/allocations/3da3892f-c22e-40dd-a5cc-ccc326e023fb', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'e9e8fac3-382b-4d68-b075-2882fa3999e2', 'created_at': '2025-02-07T21:27:56.409995+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/e9e8fac3-382b-4d68-b075-2882fa3999e2', 'rel': 'self'}, {'href': 'http://localhost/allocations/e9e8fac3-382b-4d68-b075-2882fa3999e2', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '658c926f-2dcc-4840-baf3-312b34e6acf0', 'created_at': '2025-02-07T21:27:56.411888+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/658c926f-2dcc-4840-baf3-312b34e6acf0', 'rel': 'self'}, {'href': 'http://localhost/allocations/658c926f-2dcc-4840-baf3-312b34e6acf0', 'rel': 'bookmark'}], 'node_uuid': None}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {} -GOT:{'uuid': '5f6a4b7b-e706-4376-b16a-5ebf5e14c108', 'created_at': '2025-02-07T21:27:56.687168+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/5f6a4b7b-e706-4376-b16a-5ebf5e14c108', 'rel': 'self'}, {'href': 'http://localhost/allocations/5f6a4b7b-e706-4376-b16a-5ebf5e14c108', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/2405c377-2d1c-4203-9f59-0bfd15f9d64a {} -GOT:Response: 405 Method Not Allowed -Allow: DELETE, GET -Content-Type: application/json -{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {} +X-Openstack-Ironic-Api-Version: 1.5 + +DELETE: /v1/nodes/foo GOT:Response: 404 Not Found Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation?fields=name,extra {} -GOT:{'extra': {}, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/035ef963-0e42-4d1f-8967-ec49ec56fb87', 'rel': 'self'}, {'href': 'http://localhost/allocations/035ef963-0e42-4d1f-8967-ec49ec56fb87', 'rel': 'bookmark'}]} -GET: /v1/allocations?fields=uuid,extra {} -GOT:{'allocations': [{'uuid': '84871322-d861-4d85-af3d-54c108440704', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/84871322-d861-4d85-af3d-54c108440704', 'rel': 'self'}, {'href': 'http://localhost/allocations/84871322-d861-4d85-af3d-54c108440704', 'rel': 'bookmark'}]}, {'uuid': 'e3629573-1913-4578-9f7a-350fa343ed81', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/e3629573-1913-4578-9f7a-350fa343ed81', 'rel': 'self'}, {'href': 'http://localhost/allocations/e3629573-1913-4578-9f7a-350fa343ed81', 'rel': 'bookmark'}]}, {'uuid': '203d2638-4cbd-4c4d-bd71-de4fcdcc0781', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/203d2638-4cbd-4c4d-bd71-de4fcdcc0781', 'rel': 'self'}, {'href': 'http://localhost/allocations/203d2638-4cbd-4c4d-bd71-de4fcdcc0781', 'rel': 'bookmark'}]}]} -GET: /v1/allocations?fields=node_uuid&limit=2 {} -GOT:{'allocations': [{'links': [{'href': 'http://localhost/v1/allocations/466f000a-e20e-49a4-ac16-2c0249c8ad69', 'rel': 'self'}, {'href': 'http://localhost/allocations/466f000a-e20e-49a4-ac16-2c0249c8ad69', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'links': [{'href': 'http://localhost/v1/allocations/57224055-1759-4944-b986-3b6c2cb85782', 'rel': 'self'}, {'href': 'http://localhost/allocations/57224055-1759-4944-b986-3b6c2cb85782', '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=57224055-1759-4944-b986-3b6c2cb85782'} -GET: /v1/allocations/cca73c77-1d94-41ef-b168-53ccfd00146a?fields=uuid,spongebob {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-8b9a4dc0-d809-4560-b11c-6c745c2b325b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} -GET: /v1/allocations/8ff13bad-d9b5-4b2c-bdc5-36f57b0d5f21 {} -GOT:{'uuid': '8ff13bad-d9b5-4b2c-bdc5-36f57b0d5f21', 'created_at': '2025-02-07T21:27:58.663844+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/8ff13bad-d9b5-4b2c-bdc5-36f57b0d5f21', 'rel': 'self'}, {'href': 'http://localhost/allocations/8ff13bad-d9b5-4b2c-bdc5-36f57b0d5f21', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/d14deb52-e53f-4b4a-9c45-9e64b6f9f5e3?fields=resource_class,extra {} -GOT:{'extra': {}, 'resource_class': 'baremetal', 'links': [{'href': 'http://localhost/v1/allocations/d14deb52-e53f-4b4a-9c45-9e64b6f9f5e3', 'rel': 'self'}, {'href': 'http://localhost/allocations/d14deb52-e53f-4b4a-9c45-9e64b6f9f5e3', 'rel': 'bookmark'}]} -GET: /v1/allocations/7471b051-fb2e-4f0b-a44d-ad781af55bbc {} -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_agent_status_error -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_agent_status_error ... ok -ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_list_convert_with_links -ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_list_convert_with_links ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached ... ok -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-af6c6503-0611-4b41-bd6c-293cc7a40cb9 +Openstack-Request-Id: req-c94c9c50-6b0a-43c4-adf5-96709e6b85e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.34 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:56.137112+00:00", "updated_at": "2025-02-07T21:27:56.184399+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-bb5a178d-6bd8-4beb-8490-1a301d585e71 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/foo.json +GOT:Response: 204 No Content +Openstack-Request-Id: req-1ef00bc6-e98e-47f1-bc90-60deb9d61699 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-ca9c74b8-5367-4efa-a650-2fbcf8571b47 +X-Openstack-Ironic-Api-Version: 1.5 + +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +GOT:Response: 202 Accepted +Openstack-Request-Id: req-ae00a4fa-0b46-48bf-a8dc-ce3e5069e7f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-93fa9503-46ea-4fec-a7b2-ab5f293b18f4 +X-Openstack-Ironic-Api-Version: 1.1 + +DELETE: /v1/nodes/foo/maintenance +GOT:Response: 202 Accepted +Openstack-Request-Id: req-e7af7ef5-69fc-40b7-8f9b-473a3a322d16 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.5 + +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f3e50717-c06c-4ba1-ab01-507b6df275cd +Openstack-Request-Id: req-8a95ae0d-a249-469b-9a6f-b1658f14ecd7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/switch_id', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/foo +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d3057678-7edd-48c8-9be1-bb893f3afa53 +Openstack-Request-Id: req-07bba6e1-aa2f-45f2-8599-fd45c0162060 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.19 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:57.536790+00:00", "updated_at": "2025-02-07T21:27:57.572919+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'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 +X-Openstack-Ironic-Api-Version: 1.5 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/foo +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a883235d-35fc-4b80-ba93-f27e4703e21c +Openstack-Request-Id: req-8ea42181-0161-4916-a3d0-602a80439363 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:57.793371+00:00", "updated_at": "2025-02-07T21:27:57.832533+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} +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-0120c8bc-46b4-4d84-b849-7a35608c66a0 +Openstack-Request-Id: req-0be41cdd-a9f4-42ac-8bfb-989383da3f9d X-Openstack-Ironic-Api-Maximum-Version: 1.80 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\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +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-6517ec86-85ae-42c5-9d21-d6573b4fecc4 +Openstack-Request-Id: req-af800bf8-feac-4489-b619-85ae083ef0f2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:58.403775+00:00", "updated_at": null, "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"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c6506f4f-03f7-4d20-98c5-1d93c6ac9931 +Openstack-Request-Id: req-4b61b7cc-df72-41ba-906c-09804de8a8ca X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-07ce7ad8-89ab-4398-a07c-0ade50d33a50 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.34 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:59.038018+00:00", "updated_at": "2025-02-07T21:27:59.080325+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] -GOT:{'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}]} -GET: /v1/conductors?detail=true {} -GOT:{'conductors': [{'created_at': '2025-02-07T21:27:55.978934+00:00', 'updated_at': '2025-02-07T21:27:55.978611+00:00', 'hostname': 'why care', 'conductor_group': '', 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/why care', 'rel': 'self'}, {'href': 'http://localhost/conductors/why care', 'rel': 'bookmark'}], 'alive': True}, {'created_at': '2025-02-07T21:27:55.981681+00:00', 'updated_at': '2025-02-07T21:27:55.981418+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}]} -GET: /v1/conductors {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: port_uuid\", \"debuginfo\": null}"} +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-875ab3a3-3e29-48a4-9c6f-e1501ee34978 +Openstack-Request-Id: req-939777e5-5bd6-4b7c-9aa2-15d388192d2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/conductors?sort_key=hostname {} -GOT:{'conductors': [{'hostname': '194686e6-93bc-4f87-8bcb-df508d24bb2e', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/194686e6-93bc-4f87-8bcb-df508d24bb2e', 'rel': 'self'}, {'href': 'http://localhost/conductors/194686e6-93bc-4f87-8bcb-df508d24bb2e', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '7e5d1c87-154d-4916-b2b9-f01e30daa325', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/7e5d1c87-154d-4916-b2b9-f01e30daa325', 'rel': 'self'}, {'href': 'http://localhost/conductors/7e5d1c87-154d-4916-b2b9-f01e30daa325', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '9af4666e-e217-4f68-ac8d-0061258457f0', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/9af4666e-e217-4f68-ac8d-0061258457f0', 'rel': 'self'}, {'href': 'http://localhost/conductors/9af4666e-e217-4f68-ac8d-0061258457f0', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'baf9c575-7f3e-4ec3-909f-d2dab997efab', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/baf9c575-7f3e-4ec3-909f-d2dab997efab', 'rel': 'self'}, {'href': 'http://localhost/conductors/baf9c575-7f3e-4ec3-909f-d2dab997efab', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'd2179c84-5b7b-4ad7-982c-99372e28c5d2', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/d2179c84-5b7b-4ad7-982c-99372e28c5d2', 'rel': 'self'}, {'href': 'http://localhost/conductors/d2179c84-5b7b-4ad7-982c-99372e28c5d2', 'rel': 'bookmark'}], 'alive': True}]} -GET: /v1/conductors?sort_key=alive {} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-fee941db-4ba2-489e-8981-1dc78253f1a4 +Openstack-Request-Id: req-dd8129d9-9e1c-40e8-a65c-728bfb62ec52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value alive is an invalid field for sorting\", \"debuginfo\": null}"} -GET: /v1/conductors?sort_key=drivers {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"} +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-1e2f0090-a01d-427f-8925-6f4d3f7611af +Openstack-Request-Id: req-216e62a8-40c4-467e-8462-d7640a17b772 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value drivers is an invalid field for sorting\", \"debuginfo\": null}"} -DELETE: /v1/deploy_templates/CUSTOM_DT1 -GOT:Response: 204 No Content -Openstack-Request-Id: req-0aab481f-5b6b-431f-87ec-3277b309263b +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-67bc9fed-d21d-4f0a-8434-c7bc7c942422 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 +X-Openstack-Ironic-Api-Version: 1.13 -DELETE: /v1/deploy_templates/blah -GOT:Response: 404 Not Found +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-3ab4857c-9058-4672-93f5-3932cf14cbe7 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template blah could not be found.\", \"debuginfo\": null}"} -DELETE: /v1/deploy_templates/CUSTOM_DT1.json -GOT:Response: 204 No Content -Openstack-Request-Id: req-c57e8363-5fa4-48c2-a097-e5742766b9ba +Openstack-Request-Id: req-41c44662-b5e6-46bf-9954-dbd051022b69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -DELETE: /v1/deploy_templates/77245d19-ca19-4434-94ff-ee19c2b16edd -GOT:Response: 204 No Content -Openstack-Request-Id: req-60f4433a-b7a7-4daa-b4b2-d1a3632cddfb +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-13b06e1b-2ad3-4674-8583-8bd816d5233f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -DELETE: /v1/deploy_templates/5fb90f18-9b64-4473-ac62-943d394ca13a.json -GOT:Response: 204 No Content -Openstack-Request-Id: req-a717a96d-987d-4b8d-8121-a89f5e89b3ee +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-5a661f85-bf1f-428e-a757-1293ccad95fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 +X-Openstack-Ironic-Api-Version: 1.17 -DELETE: /v1/deploy_templates/11a02a5e-7d50-4ebf-9830-6f898783e077 -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\"}"} -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\"}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_owner_not_acceptable +ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_owner_not_acceptable ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_args +ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_args ... ok GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-1f703a84-2df1-49ed-a179-0183404c4a08 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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", "cpus": "8", "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 {} -ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg -ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg -ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files -ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail ... ok -DELETE: /v1/allocations/00803a1c-0227-4c55-8abb-fde4936e9043 -GOT:Response: 204 No Content -Openstack-Request-Id: req-a2bb46ad-b037-4cae-bae9-59d2cf31cc81 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -DELETE: /v1/allocations/alloc1 -GOT:Response: 204 No Content -Openstack-Request-Id: req-5b4181b9-23fc-4674-98af-6e5ba4074429 +Location: http://localhost/v1/allocations/143970e1-0751-4ede-be10-6ce346f1ea68 +Openstack-Request-Id: req-e298649c-03e0-4c74-8629-5c29519ec55d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 - -DELETE: /v1/allocations/blah -GOT:Response: 404 Not Found +{"uuid": "143970e1-0751-4ede-be10-6ce346f1ea68", "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/143970e1-0751-4ede-be10-6ce346f1ea68", "rel": "self"}, {"href": "http://localhost/allocations/143970e1-0751-4ede-be10-6ce346f1ea68", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/143970e1-0751-4ede-be10-6ce346f1ea68 {} +GOT:{'uuid': '143970e1-0751-4ede-be10-6ce346f1ea68', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/143970e1-0751-4ede-be10-6ce346f1ea68', 'rel': 'self'}, {'href': 'http://localhost/allocations/143970e1-0751-4ede-be10-6ce346f1ea68', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'fccfbfc3-70ce-4cf6-b3a5-84b28b0e4b9d', 'owner': None} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a292986d-885b-4e59-9c99-80a2943bf64b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation blah could not be found.\", \"debuginfo\": null}"} -DELETE: /v1/allocations/alloc1.json -GOT:Response: 204 No Content -Openstack-Request-Id: req-06e3e103-19a6-4429-b92f-353c5ec475c5 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation -GOT:Response: 204 No Content -Openstack-Request-Id: req-bbd65dbb-0d05-410b-9ff0-7ab1a1c653a7 +Openstack-Request-Id: req-eb8ecead-cf2c-4208-9223-e6bddc38afbe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 - -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\": \"\"}"} -DELETE: /v1/nodes/d347df0e-5ef0-4cbc-ba88-5b6b5280aa06/allocation -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: this/is/not a/node/name\", \"debuginfo\": null}"} +POST: /v1/allocations {'candidate_nodes': ['1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f902947e-bc5d-4e84-ae64-48a7120abb47', 'owner': None} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-44788684-2622-4d6a-b136-33031c56b7eb +Openstack-Request-Id: req-e38d42ce-ba02-4702-8702-70c290f0e92f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation for node d347df0e-5ef0-4cbc-ba88-5b6b5280aa06 was not found\", \"debuginfo\": null}"} -DELETE: /v1/allocations/42fe8ee4-7be3-44c1-9d98-fdacb62c749c -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\"}"} -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\"}"} -DELETE: /v1/nodes/8d943c3d-35ba-4b9d-a31d-da12dd89488f/allocation -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e\", \"debuginfo\": null}"} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {'foo': 123}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'c81d86fc-7a61-44f3-9071-3ec65a72c425', 'owner': None} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-aab702e4-0235-4d3b-a731-a3dab4ec835c +Location: http://localhost/v1/allocations/c81d86fc-7a61-44f3-9071-3ec65a72c425 +Openstack-Request-Id: req-c7638c32-28ae-4964-b2ce-8151303e275d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 8d943c3d-35ba-4b9d-a31d-da12dd89488f could not be found.\", \"debuginfo\": null}"} -DELETE: /v1/allocations/d2523c9d-eeca-4056-97c6-c75656ee672b -GOT:Response: 409 Conflict +{"uuid": "c81d86fc-7a61-44f3-9071-3ec65a72c425", "created_at": "2024-01-06T15:33:03.602362+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/c81d86fc-7a61-44f3-9071-3ec65a72c425", "rel": "self"}, {"href": "http://localhost/allocations/c81d86fc-7a61-44f3-9071-3ec65a72c425", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/c81d86fc-7a61-44f3-9071-3ec65a72c425 {} +GOT:{'uuid': 'c81d86fc-7a61-44f3-9071-3ec65a72c425', 'created_at': '2024-01-06T15:33:03.602362+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {'foo': 123}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/c81d86fc-7a61-44f3-9071-3ec65a72c425', 'rel': 'self'}, {'href': 'http://localhost/allocations/c81d86fc-7a61-44f3-9071-3ec65a72c425', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '28a719e3-8b19-4aaf-a33c-b862c4babb21', 'owner': None} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-fdbb3258-8981-45c7-9830-cce4e20528e0 +Openstack-Request-Id: req-44a61f70-39f1-4ceb-80a3-c17db55958e7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GOT:Response: 204 No Content -Openstack-Request-Id: req-dfeac320-9195-43f8-8398-07d2b9119122 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'owner': None} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-3fe867e0-f284-49ac-8996-d7ec2ec69766 +Location: http://localhost/v1/allocations/419f1329-768d-43d6-a571-a935d20759b3 +Openstack-Request-Id: req-78366e47-ef8c-4deb-ade8-ea9ebe5e764c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/chassis/4a334741-9b04-4bab-888b-1bc2cae12046 -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "419f1329-768d-43d6-a571-a935d20759b3", "created_at": "2024-01-06T15:33:04.770195+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/419f1329-768d-43d6-a571-a935d20759b3", "rel": "self"}, {"href": "http://localhost/allocations/419f1329-768d-43d6-a571-a935d20759b3", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/419f1329-768d-43d6-a571-a935d20759b3 {} +GOT:{'uuid': '419f1329-768d-43d6-a571-a935d20759b3', 'created_at': '2024-01-06T15:33:04.770195+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/419f1329-768d-43d6-a571-a935d20759b3', 'rel': 'self'}, {'href': 'http://localhost/allocations/419f1329-768d-43d6-a571-a935d20759b3', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '2f77c4ac-e79c-4618-aaca-fd9a60daaecf', 'owner': None} +GOT:Response: 405 Method Not Allowed Content-Type: application/json -Openstack-Request-Id: req-2849d119-8099-41db-93b5-3ca94885ec4b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 4a334741-9b04-4bab-888b-1bc2cae12046 could not be found.\", \"debuginfo\": null}"} -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} +POST: /v1/allocations {'candidate_nodes': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'd7a3467d-e23a-4224-bb75-a7450b84aead', 'owner': None} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-561f3afc-70b4-4c7c-a875-b61eec903dd8 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-cd15353b-f5ec-4aa8-8346-1dd319b69e1c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/drivers/manual-management/properties {} -GOT:{'prop1': 'Property 1. Required.'} -GET: /v1/drivers/manual-management/properties {} -GOT:{'prop1': 'Property 1. Required.'} -GET: /v1/drivers/manual-management/properties {} -GOT:{'prop1': 'Property 1. Required.'} -GET: /v1/drivers/driver/properties {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-2e7a89d0-bfe6-4b9a-8541-2af66d1e7aaa -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/drivers/test/properties {} -GOT:{'prop1': 'Property 1. Required.'} -GET: /v1/drivers/manual-management/properties {} -GOT:{'prop1': 'Property 1. Required.'} -GET: /v1/drivers/bad_driver/properties {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-40a0f647-d38f-4744-9116-a342ea794c4e -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-5b162447-8b10-4207-a245-b49fb059c828 +Openstack-Request-Id: req-5e1309bb-189a-4618-8897-bad359b35057 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.13 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: invalid-format\", \"debuginfo\": null}"} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'FOO_BAR'], 'uuid': '5d920c9e-6ef2-43d5-9cb2-b8e558b22d1a', 'owner': None} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c3a8b38e-edac-481f-876b-f498fc3ba674 +Openstack-Request-Id: req-d9598c17-7d84-4c66-91f1-478e5ecfac8e X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden_no_project -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden_no_project ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_no_esp_imageimg -ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_no_esp_imageimg ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"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}"} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': 'aa:bb_cc', 'resource_class': 'baremetal', 'traits': [], 'uuid': '549e2939-0c7b-4cc1-8813-b01d08e93d0a', 'owner': None} +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_present +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_present ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_status_and_status +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_status_and_status ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:05.759375+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, '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': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': None, 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'description': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_004_nodes_post_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_004_nodes_post_observer ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_base_attributes +ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_base_attributes ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:04.423427+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': 'useful piece', 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:05.093277+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:05.093277+00:00', 'updated_at': None, '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': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:05.776533+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:05.776533+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': '2015-03-18T19:20:00+00:00', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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/detail {} +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description_oversize +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description_oversize ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node ... ok GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1c072900-7579-4b49-aed0-b45c77e72367 +Openstack-Request-Id: req-62ad175e-2890-4080-956e-3fb210a6d821 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: name, extra\", \"debuginfo\": null}"} -PATCH: /v1/allocations/14ea6724-44fe-4a91-b710-362e1fabdcfa [{'path': '/name', 'value': '[test]', 'op': 'replace'}] +PATCH: /v1/allocations/9112f860-f676-42f0-a77f-afb02b6b9540 [{'path': '/name', 'value': '[test]', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1539fe54-2448-4e84-9d19-61bfb0f63e8d +Openstack-Request-Id: req-acbdeae8-dce0-4df4-a257-00a468331a26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update allocation with invalid name '[test]'\", \"debuginfo\": null}"} -PATCH: /v1/allocations/727bc420-2e43-4544-8be0-a5cc85840d39 [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] +PATCH: /v1/allocations/97d07be2-5bcd-4908-a9bb-5bcf60bc8c4a [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a11e6fde-5255-4372-ae6f-442b6e72b44a +Openstack-Request-Id: req-638ebc1b-b99a-45eb-9b4b-362680991d01 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "727bc420-2e43-4544-8be0-a5cc85840d39", "created_at": "2025-02-07T21:27:56.657927+00:00", "updated_at": "2025-02-07T21:27:56.679533+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/727bc420-2e43-4544-8be0-a5cc85840d39", "rel": "self"}, {"href": "http://localhost/allocations/727bc420-2e43-4544-8be0-a5cc85840d39", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/727bc420-2e43-4544-8be0-a5cc85840d39 {} -GOT:{'uuid': '727bc420-2e43-4544-8be0-a5cc85840d39', 'created_at': '2025-02-07T21:27:56.657927+00:00', 'updated_at': '2025-02-07T21:27:56.679533+00:00', 'candidate_nodes': [], 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/727bc420-2e43-4544-8be0-a5cc85840d39', 'rel': 'self'}, {'href': 'http://localhost/allocations/727bc420-2e43-4544-8be0-a5cc85840d39', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/allocations/3a6bf837-01ee-42eb-ab8c-750b460e46d6 [{'path': '/name', 'value': None, 'op': 'replace'}] +{"uuid": "97d07be2-5bcd-4908-a9bb-5bcf60bc8c4a", "created_at": "2024-01-06T15:33:03.257498+00:00", "updated_at": "2024-01-06T15:33:03.289206+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/97d07be2-5bcd-4908-a9bb-5bcf60bc8c4a", "rel": "self"}, {"href": "http://localhost/allocations/97d07be2-5bcd-4908-a9bb-5bcf60bc8c4a", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/97d07be2-5bcd-4908-a9bb-5bcf60bc8c4a {} +GOT:{'uuid': '97d07be2-5bcd-4908-a9bb-5bcf60bc8c4a', 'created_at': '2024-01-06T15:33:03.257498+00:00', 'updated_at': '2024-01-06T15:33:03.289206+00:00', 'candidate_nodes': [], 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/97d07be2-5bcd-4908-a9bb-5bcf60bc8c4a', 'rel': 'self'}, {'href': 'http://localhost/allocations/97d07be2-5bcd-4908-a9bb-5bcf60bc8c4a', 'rel': 'bookmark'}], 'node_uuid': None} +PATCH: /v1/allocations/eda3ad6b-36d7-41a7-82e7-465096912529 [{'path': '/name', 'value': None, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-464ee018-dff1-4e27-abc2-a55915376ae7 +Openstack-Request-Id: req-14a6b54e-6c46-491b-ac0e-c091cf81b7aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "3a6bf837-01ee-42eb-ab8c-750b460e46d6", "created_at": "2025-02-07T21:27:56.940222+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/3a6bf837-01ee-42eb-ab8c-750b460e46d6", "rel": "self"}, {"href": "http://localhost/allocations/3a6bf837-01ee-42eb-ab8c-750b460e46d6", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/3a6bf837-01ee-42eb-ab8c-750b460e46d6 {} -GOT:{'uuid': '3a6bf837-01ee-42eb-ab8c-750b460e46d6', 'created_at': '2025-02-07T21:27:56.940222+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/3a6bf837-01ee-42eb-ab8c-750b460e46d6', 'rel': 'self'}, {'href': 'http://localhost/allocations/3a6bf837-01ee-42eb-ab8c-750b460e46d6', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/allocations/d2e2df3a-509a-49c6-bf85-d0748cb1b69d [{'path': '/name', 'value': 'test', 'op': 'replace'}] +{"uuid": "eda3ad6b-36d7-41a7-82e7-465096912529", "created_at": "2024-01-06T15:33:03.661957+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/eda3ad6b-36d7-41a7-82e7-465096912529", "rel": "self"}, {"href": "http://localhost/allocations/eda3ad6b-36d7-41a7-82e7-465096912529", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/eda3ad6b-36d7-41a7-82e7-465096912529 {} +GOT:{'uuid': 'eda3ad6b-36d7-41a7-82e7-465096912529', 'created_at': '2024-01-06T15:33:03.661957+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/eda3ad6b-36d7-41a7-82e7-465096912529', 'rel': 'self'}, {'href': 'http://localhost/allocations/eda3ad6b-36d7-41a7-82e7-465096912529', 'rel': 'bookmark'}], 'node_uuid': None} +PATCH: /v1/allocations/78795c51-ecb2-4bc8-861b-289fcfda4c35 [{'path': '/name', 'value': 'test', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-32d7b7c8-6cd4-4e61-a1c9-74d62197fedb +Openstack-Request-Id: req-72ba2b1b-c0d7-499d-a8e8-bbf4a2b687ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "d2e2df3a-509a-49c6-bf85-d0748cb1b69d", "created_at": "2025-02-07T21:27:57.225360+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/d2e2df3a-509a-49c6-bf85-d0748cb1b69d", "rel": "self"}, {"href": "http://localhost/allocations/d2e2df3a-509a-49c6-bf85-d0748cb1b69d", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/d2e2df3a-509a-49c6-bf85-d0748cb1b69d {} -GOT:{'uuid': 'd2e2df3a-509a-49c6-bf85-d0748cb1b69d', 'created_at': '2025-02-07T21:27:57.225360+00:00', 'updated_at': '2000-01-01T00:00:00+00:00', 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'test', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/d2e2df3a-509a-49c6-bf85-d0748cb1b69d', 'rel': 'self'}, {'href': 'http://localhost/allocations/d2e2df3a-509a-49c6-bf85-d0748cb1b69d', 'rel': 'bookmark'}], 'node_uuid': None} -PATCH: /v1/allocations/4c971984-a54b-4e82-98e4-fa541e4daba0 [{'path': '/name', 'value': 'new', 'op': 'replace'}] +{"uuid": "78795c51-ecb2-4bc8-861b-289fcfda4c35", "created_at": "2024-01-06T15:33:04.061454+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/78795c51-ecb2-4bc8-861b-289fcfda4c35", "rel": "self"}, {"href": "http://localhost/allocations/78795c51-ecb2-4bc8-861b-289fcfda4c35", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/78795c51-ecb2-4bc8-861b-289fcfda4c35 {} +GOT:{'uuid': '78795c51-ecb2-4bc8-861b-289fcfda4c35', 'created_at': '2024-01-06T15:33:04.061454+00:00', 'updated_at': '2000-01-01T00:00:00+00:00', 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'test', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/78795c51-ecb2-4bc8-861b-289fcfda4c35', 'rel': 'self'}, {'href': 'http://localhost/allocations/78795c51-ecb2-4bc8-861b-289fcfda4c35', 'rel': 'bookmark'}], 'node_uuid': None} +PATCH: /v1/allocations/88473a62-d7f1-4508-b559-67bdc061944a [{'path': '/name', 'value': 'new', 'op': 'replace'}] GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-79963465-7263-4021-b6c3-990183574a9f +Openstack-Request-Id: req-b73cdf34-8bdb-4cfa-b5be-d58935e1864f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} -PATCH: /v1/allocations/69d7f641-2697-4b58-8593-942b5e75aeea [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +PATCH: /v1/allocations/34bd6544-83d6-4155-8569-340604319d50 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 405 Method Not Allowed Content-Type: application/json -Openstack-Request-Id: req-926c87ee-3c10-4662-ad00-86c03293359f +Openstack-Request-Id: req-d0eb1b8f-df05-4cc6-a8be-79c32b4f78e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/allocations/efa40256-fe36-4f4a-a899-fe83a02f953f [{'path': '/name', 'value': 'b', 'op': 'replace'}] +PATCH: /v1/allocations/dbeff383-4cbf-4e2f-8955-d04a16a6e12d [{'path': '/name', 'value': 'b', 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a6e5a921-51b0-4429-b176-0075cfffba59 +Openstack-Request-Id: req-037f589d-2aa5-4729-a615-8e77e2896063 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation efa40256-fe36-4f4a-a899-fe83a02f953f could not be found.\", \"debuginfo\": null}"} -PATCH: /v1/allocations/c21f280c-fcf3-42b5-ae24-b3bbc5322331 [{'path': '/owner', 'value': '54321', 'op': 'replace'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation dbeff383-4cbf-4e2f-8955-d04a16a6e12d could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/allocations/5267c295-a019-41b0-9c02-0aab840c909f [{'path': '/owner', 'value': '54321', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-3f092b77-655f-4243-98a6-56da7391ca9f +Openstack-Request-Id: req-a8262ed8-ddd3-4492-879d-b15c8abff984 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /owner. Only the following can be updated: name, extra\", \"debuginfo\": null}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'acdaf500-278a-4948-94fa-1e75a25de133'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-4d3ea690-2ad7-454a-b9e4-9e3798986deb -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 - -POST: /v1/nodes/node-39/vifs {'id': '556fa46f-b7de-45ea-9f9e-4a9722d788b1'} +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 204 No Content -Openstack-Request-Id: req-60721782-90f0-425d-8a03-d71c1fd90a84 +Openstack-Request-Id: req-d1184806-12e0-4742-9859-4359a1ea3db1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 +X-Openstack-Ironic-Api-Version: 1.1 -POST: /v1/nodes/node-39/vifs {'id': 'ed38f6b9-53f9-4e91-918e-d52d792b9a6f'} -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links ... ok -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-31969343-2a18-419b-b827-0d9149906bb4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d5a1dba7-ef94-4321-bb87-508e55398342 could not be found.\", \"debuginfo\": null}"} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-189f0f0e-36d2-44fe-8786-b3b03425c6d7 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-028d41d3-6091-4dfd-bf3c-39a1d06d17f9 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} -GOT:Response: 406 Not Acceptable +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-679b1ac1-507a-4b2f-9de2-4694b1fb3149 +Openstack-Request-Id: req-909713ec-0f24-41e9-add3-a1059e7c8833 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-cde50083-eecf-41b3-b737-85c58df2bcf8 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found.\", \"debuginfo\": null}"} +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_token +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_token ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty ... ok +2024-01-07 05:33:07.242 22379 INFO alembic.runtime.migration [None req-67addfe8-27ea-4c97-97cd-b4490313767a - - - - - -] Context impl SQLiteImpl. +2024-01-07 05:33:07.243 22379 INFO alembic.runtime.migration [None req-67addfe8-27ea-4c97-97cd-b4490313767a - - - - - -] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_verify_ca +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_verify_ca ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_005_nodes_get_node_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_005_nodes_get_node_admin ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status ... ok +GET: /v1/allocations?owner=54321 {} +GOT:Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-3ebb3a98-da16-4c07-8d9b-af7464220a25 +Openstack-Request-Id: req-88387915-a132-4ac2-9eed-4f5bcd4d28ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:59.591636+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:27:59.591636+00:00', 'updated_at': None, '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'}}, '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': None, 'pxe_enabled': 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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -POST: /v1/ports {'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': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.60 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} +GET: /v1/allocations {} +GOT:Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-3c97f492-dbf3-487b-a3d7-ef2f59999595 +Openstack-Request-Id: req-51603d9f-5a3b-413f-b608-1e1458a5ba6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:27:59.968845+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -POST: /v1/ports {'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': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api ... ok - -GET: /v1/nodes/detail {} +X-Openstack-Ironic-Api-Version: 1.60 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} +GET: /v1/allocations {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8c3edf16-ea75-47a9-a0f0-240bd64f1717 +Openstack-Request-Id: req-a611ea66-55e7-480d-b08c-72edc0180a89 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.49 +X-Openstack-Ironic-Api-Version: 1.59 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} -GET: /v1/nodes {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, '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 {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, '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?sort_key=resource_class {} -GOT:{'nodes': [{'uuid': '7c2930db-6c58-4f46-ab04-0c570b469493', 'created_at': '2025-02-07T21:27:59.221220+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'rc_1', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'links': [{'href': 'http://localhost/v1/nodes/7c2930db-6c58-4f46-ab04-0c570b469493', 'rel': 'self'}, {'href': 'http://localhost/nodes/7c2930db-6c58-4f46-ab04-0c570b469493', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/7c2930db-6c58-4f46-ab04-0c570b469493/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7c2930db-6c58-4f46-ab04-0c570b469493/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/7c2930db-6c58-4f46-ab04-0c570b469493/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/7c2930db-6c58-4f46-ab04-0c570b469493/states', 'rel': 'bookmark'}]}, {'uuid': '7a867232-a412-4d02-a7ce-5e0236414a92', 'created_at': '2025-02-07T21:27:59.217062+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'rc_2', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'links': [{'href': 'http://localhost/v1/nodes/7a867232-a412-4d02-a7ce-5e0236414a92', 'rel': 'self'}, {'href': 'http://localhost/nodes/7a867232-a412-4d02-a7ce-5e0236414a92', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/7a867232-a412-4d02-a7ce-5e0236414a92/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7a867232-a412-4d02-a7ce-5e0236414a92/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/7a867232-a412-4d02-a7ce-5e0236414a92/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/7a867232-a412-4d02-a7ce-5e0236414a92/states', 'rel': 'bookmark'}]}, {'uuid': '1cd6edee-bd81-4f7d-86b6-139fe9243d49', 'created_at': '2025-02-07T21:27:59.212017+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'rc_3', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'links': [{'href': 'http://localhost/v1/nodes/1cd6edee-bd81-4f7d-86b6-139fe9243d49', 'rel': 'self'}, {'href': 'http://localhost/nodes/1cd6edee-bd81-4f7d-86b6-139fe9243d49', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1cd6edee-bd81-4f7d-86b6-139fe9243d49/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1cd6edee-bd81-4f7d-86b6-139fe9243d49/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1cd6edee-bd81-4f7d-86b6-139fe9243d49/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1cd6edee-bd81-4f7d-86b6-139fe9243d49/states', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?sort_key=resource_class {} -GOT:Response: 406 Not Acceptable +GET: /v1/allocations {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7a1c66a7-00bd-4ee6-ab9f-11a5ae49ec58 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/nodes?detail=True {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_with_ExecutionError -ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_with_ExecutionError ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_host_id -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_host_id ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_node_uuid_not_allowed -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_node_uuid_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} +GET: /v1/allocations {} +GOT:{'allocations': [{'uuid': 'efc63236-433c-40ec-9596-1cf863fb4ef7', 'created_at': '2024-01-06T15:33:04.978078+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/efc63236-433c-40ec-9596-1cf863fb4ef7', 'rel': 'self'}, {'href': 'http://localhost/allocations/efc63236-433c-40ec-9596-1cf863fb4ef7', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'f57204fe-9cc0-4471-b117-3a3952eee9cb', 'created_at': '2024-01-06T15:33:04.980370+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/f57204fe-9cc0-4471-b117-3a3952eee9cb', 'rel': 'self'}, {'href': 'http://localhost/allocations/f57204fe-9cc0-4471-b117-3a3952eee9cb', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '28978f86-578c-4555-9284-ada2024586b5', 'created_at': '2024-01-06T15:33:04.982376+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/28978f86-578c-4555-9284-ada2024586b5', 'rel': 'self'}, {'href': 'http://localhost/allocations/28978f86-578c-4555-9284-ada2024586b5', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'c092ea50-a70c-426a-ab16-df601fbdf2fc', 'created_at': '2024-01-06T15:33:04.983733+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/c092ea50-a70c-426a-ab16-df601fbdf2fc', 'rel': 'self'}, {'href': 'http://localhost/allocations/c092ea50-a70c-426a-ab16-df601fbdf2fc', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'd5cbcdd5-290e-4b1d-9952-b2d59f9e168c', 'created_at': '2024-01-06T15:33:04.985170+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/d5cbcdd5-290e-4b1d-9952-b2d59f9e168c', 'rel': 'self'}, {'href': 'http://localhost/allocations/d5cbcdd5-290e-4b1d-9952-b2d59f9e168c', 'rel': 'bookmark'}], 'node_uuid': None}]} +GET: /v1/allocations/4f3bb09a-04cc-4bff-b1ff-72359cbe199b {} +GOT:{'uuid': '4f3bb09a-04cc-4bff-b1ff-72359cbe199b', 'created_at': '2024-01-06T15:33:05.411644+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/4f3bb09a-04cc-4bff-b1ff-72359cbe199b', 'rel': 'self'}, {'href': 'http://localhost/allocations/4f3bb09a-04cc-4bff-b1ff-72359cbe199b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/4f3bb09a-04cc-4bff-b1ff-72359cbe199b {} +GOT:{'uuid': '4f3bb09a-04cc-4bff-b1ff-72359cbe199b', 'created_at': '2024-01-06T15:33:05.411644+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/4f3bb09a-04cc-4bff-b1ff-72359cbe199b', 'rel': 'self'}, {'href': 'http://localhost/allocations/4f3bb09a-04cc-4bff-b1ff-72359cbe199b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/9d6e98ef-6f9e-4a33-a96b-9984b336bed4 {} +GOT:{'uuid': '9d6e98ef-6f9e-4a33-a96b-9984b336bed4', 'created_at': '2024-01-06T15:33:05.817837+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/9d6e98ef-6f9e-4a33-a96b-9984b336bed4', 'rel': 'self'}, {'href': 'http://localhost/allocations/9d6e98ef-6f9e-4a33-a96b-9984b336bed4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/0ce4a84a-bd46-4f1c-89e1-541c460dac01 {} +GOT:{'uuid': '0ce4a84a-bd46-4f1c-89e1-541c460dac01', 'created_at': '2024-01-06T15:33:06.247390+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/0ce4a84a-bd46-4f1c-89e1-541c460dac01', 'rel': 'self'}, {'href': 'http://localhost/allocations/0ce4a84a-bd46-4f1c-89e1-541c460dac01', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/node/ad60438e-7d23-4ac0-a8f2-6d9197517b54/allocation {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-8c0d9d6e-66f4-47fa-849a-0e783b47f4e8 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:27:59.969752+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, "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", "cpus": "8", "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, "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:27:59.969752+00:00', 'updated_at': None, 'automated_clean': True, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': None, 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'automated_clean': True, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fails_no_grub_cfg -ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fails_no_grub_cfg ... ok -GOT:Response: 201 Created +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/node/add7cc64-3330-4f92-ac73-ce1e0391b45c/allocation {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/allocations/30012149-d19f-4103-ad66-3cc7965b9d8a -Openstack-Request-Id: req-dcd5b2d3-3313-4adc-9e35-944fb2826134 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "30012149-d19f-4103-ad66-3cc7965b9d8a", "created_at": "2025-02-07T21:27:58.807014+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": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/30012149-d19f-4103-ad66-3cc7965b9d8a", "rel": "self"}, {"href": "http://localhost/allocations/30012149-d19f-4103-ad66-3cc7965b9d8a", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/30012149-d19f-4103-ad66-3cc7965b9d8a {} -GOT:{'uuid': '30012149-d19f-4103-ad66-3cc7965b9d8a', 'created_at': '2025-02-07T21:27:58.807014+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/30012149-d19f-4103-ad66-3cc7965b9d8a', 'rel': 'self'}, {'href': 'http://localhost/allocations/30012149-d19f-4103-ad66-3cc7965b9d8a', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': ['node-1', 'c562a63a-2a94-40ce-a380-31aa3f87056d'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '47861a74-b37e-41d4-9aac-4fbf118062bd', 'owner': None} -GOT:Response: 201 Created +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/allocations/?limit=3 {} +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid ... ok +POST: /v1/events {'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 -Location: http://localhost/v1/allocations/47861a74-b37e-41d4-9aac-4fbf118062bd -Openstack-Request-Id: req-5a361669-3fb4-44da-a663-2889cf191e35 +Openstack-Request-Id: req-19d14021-5eed-4859-8feb-df3ee124ec6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "47861a74-b37e-41d4-9aac-4fbf118062bd", "created_at": "2025-02-07T21:27:59.133240+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "c562a63a-2a94-40ce-a380-31aa3f87056d"], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/47861a74-b37e-41d4-9aac-4fbf118062bd", "rel": "self"}, {"href": "http://localhost/allocations/47861a74-b37e-41d4-9aac-4fbf118062bd", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/47861a74-b37e-41d4-9aac-4fbf118062bd {} -GOT:{'uuid': '47861a74-b37e-41d4-9aac-4fbf118062bd', 'created_at': '2025-02-07T21:27:59.133240+00:00', 'updated_at': None, 'candidate_nodes': ['1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'c562a63a-2a94-40ce-a380-31aa3f87056d'], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/47861a74-b37e-41d4-9aac-4fbf118062bd', 'rel': 'self'}, {'href': 'http://localhost/allocations/47861a74-b37e-41d4-9aac-4fbf118062bd', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '67abff55-8297-4e52-80da-96419efb78a3', 'owner': None} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/allocations/67abff55-8297-4e52-80da-96419efb78a3 -Openstack-Request-Id: req-839bb4ef-6e8e-428a-b6c9-e7a87da66e6c +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"} +POST: /v1/events {'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-199c25ba-f170-4808-85af-807da97f4d02 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "67abff55-8297-4e52-80da-96419efb78a3", "created_at": "2025-02-07T21:27:59.486914+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/67abff55-8297-4e52-80da-96419efb78a3", "rel": "self"}, {"href": "http://localhost/allocations/67abff55-8297-4e52-80da-96419efb78a3", "rel": "bookmark"}], "node_uuid": null} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': 'a920d06a-37b4-4ca5-891c-8472337f26bc', 'owner': None} -GOT:Response: 201 Created + +POST: /v1/events {'events': [{'event': 'network.unbind_port', 'UNKNOWN': 'EVENT_PROPERTY'}]} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/allocations/a920d06a-37b4-4ca5-891c-8472337f26bc -Openstack-Request-Id: req-3293e25a-67bb-4863-82f7-9d4566252bff +Openstack-Request-Id: req-7281ec27-fdd1-4850-b1a4-54cae8d1e468 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "a920d06a-37b4-4ca5-891c-8472337f26bc", "created_at": "2025-02-07T21:27:59.838691+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": ["CUSTOM_GPU", "CUSTOM_FOO_BAR"], "links": [{"href": "http://localhost/v1/allocations/a920d06a-37b4-4ca5-891c-8472337f26bc", "rel": "self"}, {"href": "http://localhost/allocations/a920d06a-37b4-4ca5-891c-8472337f26bc", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/a920d06a-37b4-4ca5-891c-8472337f26bc {} -GOT:{'uuid': 'a920d06a-37b4-4ca5-891c-8472337f26bc', 'created_at': '2025-02-07T21:27:59.838691+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'links': [{'href': 'http://localhost/v1/allocations/a920d06a-37b4-4ca5-891c-8472337f26bc', 'rel': 'self'}, {'href': 'http://localhost/allocations/a920d06a-37b4-4ca5-891c-8472337f26bc', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '70a4ebfd-88ab-45ba-a32e-d450dda113d2', 'owner': None} -GOT:Response: 405 Method Not Allowed -Allow: DELETE, GET -Content-Type: application/json -{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a40800dd-35eb-4d9c-91a6-281bea42d20f', 'owner': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1bf97e36-b721-4a51-a0a5-71201f91c164 +Openstack-Request-Id: req-26c823a2-94c3-44c1-afb4-0c99e339a52f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: Additional properties are not allowed ('node_uuid' was unexpected)\", \"debuginfo\": null}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a66639aa-c76d-4096-a48d-e29964b4aaea', 'owner': None} -GOT:Response: 201 Created +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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/allocations/a66639aa-c76d-4096-a48d-e29964b4aaea -Openstack-Request-Id: req-5a84a5d0-1f3f-437b-ba64-48ca62059db2 +Openstack-Request-Id: req-4bc03400-2127-4e42-837f-7fdba47c9f3c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.60 -{"uuid": "a66639aa-c76d-4096-a48d-e29964b4aaea", "created_at": "2025-02-07T21:28:00.591434+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/a66639aa-c76d-4096-a48d-e29964b4aaea", "rel": "self"}, {"href": "http://localhost/allocations/a66639aa-c76d-4096-a48d-e29964b4aaea", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/a66639aa-c76d-4096-a48d-e29964b4aaea {} -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin_owner_proj_mismatch -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin_owner_proj_mismatch ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_custom_fields -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_owner_field -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_owner_field ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_deprecated_without_owner -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_deprecated_without_owner ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_with_owner -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_with_owner ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields ... ok -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:05.679735+00:00", "updated_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", "cpus": "8", "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"}]} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/deploy_templates/24d50e95-a3c4-4f08-9bd5-447e4daef0a9 -Openstack-Request-Id: req-67eea794-0c94-4b12-8568-de32a68937f9 +Openstack-Request-Id: req-6f1d0c70-8aac-4d19-970b-4cc30add6f18 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "24d50e95-a3c4-4f08-9bd5-447e4daef0a9", "created_at": "2025-02-07T21:27:57.805562+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/24d50e95-a3c4-4f08-9bd5-447e4daef0a9", "rel": "self"}, {"href": "http://localhost/deploy_templates/24d50e95-a3c4-4f08-9bd5-447e4daef0a9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": "42"}]} -POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '48c2c307-46a0-405f-b07c-69cec04157c7', '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 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:06.504121+00:00", "updated_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", "cpus": "8", "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"}]} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d2d6d585-7628-42d4-80f9-98b8d3e828cf +Openstack-Request-Id: req-1ebe986e-b981-4b06-bef3-e31e745e7b8c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/events {'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'}]} +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:07.370335+00:00", "updated_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", "cpus": "8", "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"}]} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state ... ok +GET: /v1/bad/path {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +DELETE: /v1/deploy_templates/CUSTOM_DT1 GOT:Response: 204 No Content -Openstack-Request-Id: req-523355a4-e880-43bc-802a-c4097cd6e013 +Openstack-Request-Id: req-474eddb3-15e9-4ce6-8514-dee0dd1348ec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -POST: /v1/events {'events': [{'INVALID': 'fake.event'}]} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-5f9f7c1a-4328-4c73-ae51-bf431e0e8d5d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"} -POST: /v1/events {'events': [{'event': 'invalid.event'}]} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-a69c361f-067a-4554-bc9a-07a39f8ba78d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/events {'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'}]} +DELETE: /v1/deploy_templates/blah GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e2013a6e-dcd4-4e4d-a37e-22f1948a28c8 +Openstack-Request-Id: req-d7f373c9-222f-47f3-96d0-3d0cdd6f2f4f X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/events {'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'}]} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template blah could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/deploy_templates/CUSTOM_DT1.json GOT:Response: 204 No Content -Openstack-Request-Id: req-1f381768-4304-4423-a657-37c76be83b2d +Openstack-Request-Id: req-f362d770-7fd7-4c93-886e-32205ed1a654 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -POST: /v1/events {'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'}]} +DELETE: /v1/deploy_templates/b5148dc1-d1e7-4086-ac9d-487498e85778 GOT:Response: 204 No Content -Openstack-Request-Id: req-fe82af46-e4a4-49c0-85cd-7d2189848754 +Openstack-Request-Id: req-18ac8261-c36e-4992-9c98-ac69c8fa2990 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -POST: /v1/events {'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'}]} +DELETE: /v1/deploy_templates/4ebe0672-1ca1-4839-9172-8dfdd39cd8f6.json GOT:Response: 204 No Content -Openstack-Request-Id: req-97598a0e-e9fb-4eb2-a0b4-b01f010da213 +Openstack-Request-Id: req-3eff990d-face-4797-baa9-47b8c8d6dc05 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -POST: /v1/events {'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 +DELETE: /v1/deploy_templates/1ef2527d-1811-4158-a92f-790bd769afff +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\"}"} +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\"}"} +GET: /v1/ {} +GOT:{'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.80'}, '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'}]} +GET: /v1/ {} +GOT:{'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.80'}} +GET: /v1/ {} +GOT:{'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.80'}} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8011c11f-c5dc-47d8-9561-1ef0ff9e75ef +Openstack-Request-Id: req-39c65100-54f5-4696-b9f7-989c85fc938a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/events {'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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2fadd6cb-df04-4249-82b1-3ffa3893e5c2 +Openstack-Request-Id: req-056546bb-6ff2-4f2e-8f45-b43e274e8b97 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'] is not of type 'string', 'null'\", \"debuginfo\": null}"} -POST: /v1/events {'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'}]} -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_forbidden -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port ... ok -GOT:{'nodes': [{'uuid': '457bf8c4-d4cd-4403-9dbd-0c6e0f900df3', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/457bf8c4-d4cd-4403-9dbd-0c6e0f900df3', 'rel': 'self'}, {'href': 'http://localhost/nodes/457bf8c4-d4cd-4403-9dbd-0c6e0f900df3', 'rel': 'bookmark'}]}, {'uuid': 'e03b9baf-6bca-4b5e-9102-514625a03668', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/e03b9baf-6bca-4b5e-9102-514625a03668', 'rel': 'self'}, {'href': 'http://localhost/nodes/e03b9baf-6bca-4b5e-9102-514625a03668', 'rel': 'bookmark'}]}]} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 {} -GOT:{'nodes': [{'uuid': '457bf8c4-d4cd-4403-9dbd-0c6e0f900df3', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/457bf8c4-d4cd-4403-9dbd-0c6e0f900df3', 'rel': 'self'}, {'href': 'http://localhost/nodes/457bf8c4-d4cd-4403-9dbd-0c6e0f900df3', '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=457bf8c4-d4cd-4403-9dbd-0c6e0f900df3'} -GET: /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a075529f-8063-4345-a987-a3ea5b94bd74 +Openstack-Request-Id: req-0d1d7f36-e21a-4b11-a655-0fa0b041a8f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2025-02-07T21:27:56.232285+00:00', 'updated_at': None, '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/nodes {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b098d951-a908-4486-9f12-be33a83db94c +Openstack-Request-Id: req-1490f579-7abf-4e1c-85a2-2bf13686d307 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/chassis {} -GOT:{'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?sort_key=uuid {} -GOT:{'chassis': [{'uuid': '373d0425-39d5-4b13-82c1-eafc53b1971b', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/373d0425-39d5-4b13-82c1-eafc53b1971b', 'rel': 'self'}, {'href': 'http://localhost/chassis/373d0425-39d5-4b13-82c1-eafc53b1971b', 'rel': 'bookmark'}]}, {'uuid': '5ea65c9e-b994-4878-b46d-0e6b9043f1c8', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/5ea65c9e-b994-4878-b46d-0e6b9043f1c8', 'rel': 'self'}, {'href': 'http://localhost/chassis/5ea65c9e-b994-4878-b46d-0e6b9043f1c8', 'rel': 'bookmark'}]}, {'uuid': 'aff81af4-a1d4-4eb4-bd01-f6a5e7db781d', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/aff81af4-a1d4-4eb4-bd01-f6a5e7db781d', 'rel': 'self'}, {'href': 'http://localhost/chassis/aff81af4-a1d4-4eb4-bd01-f6a5e7db781d', 'rel': 'bookmark'}]}]} -GET: /v1/chassis?sort_key=foo {} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_auto_filled +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_auto_filled ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version ... ok GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7bf2c3e6-18b7-40ef-acda-c50720ecdebb +Openstack-Request-Id: req-44e6d5e0-56b8-4544-b112-4469cfd0785e X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed' is too long\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -Openstack-Request-Id: req-dc89749b-899e-46fd-955a-80e6bc19bb94 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-84351810-3c13-4b87-ae63-cc176b3c3a62 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 409 Conflict +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:07.491320+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", "cpus": "8", "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:07.491320+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {'foo': 123}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property +ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress ... ok +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:06.585450+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': '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 {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:06.585450+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:07.418901+00:00', 'updated_at': None, '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': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:07.418901+00:00', 'updated_at': None, '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': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': 'fish', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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/detail {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:08.186242+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': '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 {} +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_006_nodes_get_node_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_006_nodes_get_node_member ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface ... ok +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=c1a1b804-d9fe-4b6e-9c89-78cbc04bae05 {} +GOT:{'node': {'uuid': 'c1a1b804-d9fe-4b6e-9c89-78cbc04bae05', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/c1a1b804-d9fe-4b6e-9c89-78cbc04bae05', 'rel': 'self'}, {'href': 'http://localhost/nodes/c1a1b804-d9fe-4b6e-9c89-78cbc04bae05', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': '234567890', 'agent_token_required': True}} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9b8930ad-acbd-4233-a671-943ec60a34e8 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 204 No Content -Openstack-Request-Id: req-37afe3de-a05e-467c-8fca-196a69572256 +Openstack-Request-Id: req-ea8478fd-1758-4c7f-8ee5-68ec65355f64 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -DELETE: /v1/nodes/foo.1 -GOT:Response: 204 No Content -Openstack-Request-Id: req-db24252f-9301-44e2-beda-3ef58fecee57 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/lookup {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-c52f40bb-34c6-43c6-8311-d0075c07a2e8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 - -DELETE: /v1/nodes/foo +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c4f60744-1e6d-4a5f-bbc5-3e6200254c1f +Openstack-Request-Id: req-1d1a8a90-5fc0-48a7-9140-b4059e748dbf X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/nodes/foo.json -GOT:Response: 204 No Content -Openstack-Request-Id: req-37671b35-ca65-4b24-bc70-e6123425c094 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 - -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -GOT:Response: 202 Accepted -Openstack-Request-Id: req-d32d52ed-6c40-4b6b-bde7-eb52734ce55f +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=9fad19ea-284c-4e5a-b7cb-8d94c00e7c60 {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-d3a7564b-ca76-471f-84ef-ca1b1a6890a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -DELETE: /v1/nodes/foo/maintenance -GOT:Response: 202 Accepted -Openstack-Request-Id: req-32b3559d-d197-4f0a-97e2-ed17a2bad875 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/volume/targets/?limit=3 {} +GOT:{'targets': [{'uuid': '16d8fdf8-c58f-4cda-937d-5f22bebd6cbb', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/16d8fdf8-c58f-4cda-937d-5f22bebd6cbb', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/16d8fdf8-c58f-4cda-937d-5f22bebd6cbb', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '56adc0df-d0e7-442b-a7ea-a79eaf6760f2', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/56adc0df-d0e7-442b-a7ea-a79eaf6760f2', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/56adc0df-d0e7-442b-a7ea-a79eaf6760f2', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'd806cf24-f5c4-42d2-a805-165b4f556d70', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/d806cf24-f5c4-42d2-a805-165b4f556d70', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d806cf24-f5c4-42d2-a805-165b4f556d70', '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=d806cf24-f5c4-42d2-a805-165b4f556d70'} +GET: /v1/volume/targets?fields=uuid,extra {} +GOT:{'targets': [{'uuid': '6ed99fd6-bffd-4e76-ae5a-377088ba6014', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/6ed99fd6-bffd-4e76-ae5a-377088ba6014', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6ed99fd6-bffd-4e76-ae5a-377088ba6014', 'rel': 'bookmark'}]}, {'uuid': 'e3284678-d742-4d18-8537-c2e387ca922a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/e3284678-d742-4d18-8537-c2e387ca922a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e3284678-d742-4d18-8537-c2e387ca922a', 'rel': 'bookmark'}]}, {'uuid': '6c8a178e-9a40-4db6-b333-f4ce8c2d77b6', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/6c8a178e-9a40-4db6-b333-f4ce8c2d77b6', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6c8a178e-9a40-4db6-b333-f4ce8c2d77b6', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=6c8a178e-9a40-4db6-b333-f4ce8c2d77b6'} +GET: /v1/volume/targets {} +GOT:{'targets': [{'uuid': '85e768c7-1762-4471-a568-0c832bbfba5c', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/85e768c7-1762-4471-a568-0c832bbfba5c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/85e768c7-1762-4471-a568-0c832bbfba5c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '015e6902-00e4-429f-b24f-fa8cd6b4ddbf', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/015e6902-00e4-429f-b24f-fa8cd6b4ddbf', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/015e6902-00e4-429f-b24f-fa8cd6b4ddbf', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '2017ab4d-7dbe-4b29-9af0-408ea9563000', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/2017ab4d-7dbe-4b29-9af0-408ea9563000', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/2017ab4d-7dbe-4b29-9af0-408ea9563000', '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=2017ab4d-7dbe-4b29-9af0-408ea9563000'} +GET: /v1/volume/targets?detail=True&limit=3 {} +GOT:{'targets': [{'uuid': '975b2815-9915-4447-aa61-39a45d3fcc3a', 'created_at': '2024-01-06T15:33:08.421199+00:00', 'updated_at': None, 'boot_index': 0, 'extra': {}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/975b2815-9915-4447-aa61-39a45d3fcc3a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/975b2815-9915-4447-aa61-39a45d3fcc3a', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'dde8537b-81ba-4f13-b9e4-b7f2d363784f', 'created_at': '2024-01-06T15:33:08.423053+00:00', 'updated_at': None, 'boot_index': 1, 'extra': {}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/dde8537b-81ba-4f13-b9e4-b7f2d363784f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/dde8537b-81ba-4f13-b9e4-b7f2d363784f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '72507f2b-52bb-4365-910b-791358615675', 'created_at': '2024-01-06T15:33:08.424400+00:00', 'updated_at': None, 'boot_index': 2, 'extra': {}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/72507f2b-52bb-4365-910b-791358615675', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/72507f2b-52bb-4365-910b-791358615675', '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=72507f2b-52bb-4365-910b-791358615675'} +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_older_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_older_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_allowed +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid ... ok +GOT:{'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}]} +GET: /v1/conductors?detail=true {} +GOT:{'conductors': [{'created_at': '2024-01-06T15:33:03.121366+00:00', 'updated_at': '2024-01-06T15:33:03.121077+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-01-06T15:33:03.123484+00:00', 'updated_at': '2024-01-06T15:33:03.123275+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}]} +GET: /v1/conductors {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-f2c1bb6f-ec76-4834-a041-ce2f189b2d00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 - -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.48 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/conductors?sort_key=hostname {} +GOT:{'conductors': [{'hostname': '1a1041a2-8ff0-4788-aab6-4c0ef2c5d014', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/1a1041a2-8ff0-4788-aab6-4c0ef2c5d014', 'rel': 'self'}, {'href': 'http://localhost/conductors/1a1041a2-8ff0-4788-aab6-4c0ef2c5d014', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '6a07be15-a13c-476e-953a-1557100c81b5', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/6a07be15-a13c-476e-953a-1557100c81b5', 'rel': 'self'}, {'href': 'http://localhost/conductors/6a07be15-a13c-476e-953a-1557100c81b5', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'b119725e-ea3d-44cd-99e0-ab2b3674f820', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/b119725e-ea3d-44cd-99e0-ab2b3674f820', 'rel': 'self'}, {'href': 'http://localhost/conductors/b119725e-ea3d-44cd-99e0-ab2b3674f820', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'b4879a97-65d1-4acb-bdb3-767b528b2c36', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/b4879a97-65d1-4acb-bdb3-767b528b2c36', 'rel': 'self'}, {'href': 'http://localhost/conductors/b4879a97-65d1-4acb-bdb3-767b528b2c36', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'c2f32a9c-07ab-43cb-8b8e-d5fca47cdf48', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/c2f32a9c-07ab-43cb-8b8e-d5fca47cdf48', 'rel': 'self'}, {'href': 'http://localhost/conductors/c2f32a9c-07ab-43cb-8b8e-d5fca47cdf48', 'rel': 'bookmark'}], 'alive': True}]} +GET: /v1/conductors?sort_key=alive {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-faa3bb2c-4b12-4ec5-9a9e-679904e78184 +Openstack-Request-Id: req-88bdc9b7-8a8a-4b03-8f0f-2f983df7c2ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/nodes/foo -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value alive is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/conductors?sort_key=drivers {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a58e10ab-019c-47c3-bb2e-305cb986285f +Openstack-Request-Id: req-66e33890-aca0-43cc-9f72-7dcf89fec9a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/nodes/foo -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_normal -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_normal ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_older_version -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_older_version ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value drivers is an invalid field for sorting\", \"debuginfo\": null}"} POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'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-f09aa903-7c50-4cf0-9c12-e42b00888dfc +Openstack-Request-Id: req-b91a29d4-620b-4dd2-af5b-8205ff9d6136 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -9005,471 +8331,288 @@ POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url2'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-07d3ad2f-a623-425a-93c1-367c129c46b1 +Openstack-Request-Id: req-e785096b-9695-4153-be11-42f707fbd52c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"} -POST: /v1/heartbeat/57f48c5a-4f38-46ea-85b5-74432f477b6e {'callback_url': 'url'} +POST: /v1/heartbeat/33f5f691-1ecc-4a5d-a394-f20da68be343 {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-cc032128-f719-44f6-81ab-77d53352405d +Openstack-Request-Id: req-69eaf59e-d89b-48b5-a22b-9ed243b31e4b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 57f48c5a-4f38-46ea-85b5-74432f477b6e could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 33f5f691-1ecc-4a5d-a394-f20da68be343 could not be found.\", \"debuginfo\": null}"} POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'x'} GOT:Response: 202 Accepted -Openstack-Request-Id: req-2f54ead5-2393-4528-aebf-f2affb4148df +Openstack-Request-Id: req-438253ed-7fb1-4871-81d7-b5d580847fbf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'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-e3ba1c9d-67d7-42dd-87b7-b0af04adb791 +Openstack-Request-Id: req-b2d5b28a-1941-49e1-a87a-e7cd18eda9c4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'abcdef1'} GOT:Response: 202 Accepted -Openstack-Request-Id: req-76b244e2-3273-4040-a095-96dfba5bf089 +Openstack-Request-Id: req-9d40b0cb-d6a1-4a4a-87ac-6625fc5b1835 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'meow', 'agent_verify_ca': 'abcdef1'} GOT:Response: 202 Accepted -Openstack-Request-Id: req-7f94cf61-4a37-4009-ac9e-c36f87c31420 +Openstack-Request-Id: req-ba8b9e76-f616-4c7b-a9cf-395db934952b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1', 'agent_token': 'meow'} GOT:Response: 202 Accepted -Openstack-Request-Id: req-df29e706-17f8-434c-95f2-a7920be2e45e +Openstack-Request-Id: req-6bc60c11-c0fb-470b-83f5-c9466080fa45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 POST: /v1/heartbeat/test.1 {'callback_url': 'url', 'agent_token': 'token'} GOT:Response: 202 Accepted -Openstack-Request-Id: req-b8d37123-d739-4fb2-a5e7-105fced79499 +Openstack-Request-Id: req-01e7338d-3470-460b-bed3-f3adc23a1481 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {'callback_url': 'url', 'agent_token': 'maybe some magic'} GOT:Response: 202 Accepted -Openstack-Request-Id: req-2db334cf-5cc3-42cf-8246-dab7e1c61f45 +Openstack-Request-Id: req-caa93ec2-0026-4b35-b577-64a11f3a6170 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'meow', 'agent_verify_ca': 'abcd'} +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_valid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_valid_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_verify_ca_error +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_verify_ca_error ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_detail +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_detail ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_my_projet_id +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_my_projet_id ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_007_nodes_get_node_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_007_nodes_get_node_observer ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_invalid_request +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_invalid_request ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_entries +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_entries ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long ... ok +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:08.186242+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': 'flat', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': '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 {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:08.871319+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': '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 {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:08.871319+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'foo', 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': '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 {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:09.608823+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_bad_invalid_agent_status +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_bad_invalid_agent_status ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid ... ok +POST: /v1/events {'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-fbb5f680-7a42-47ec-847d-9fd1a9e597fd -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-1101a958-fe2f-4446-af3b-9453509f1803 +Openstack-Request-Id: req-d545b955-2b39-4338-be02-9ac33ad1b820 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'meow', 'agent_verify_ca': 'abcd', 'agent_status': 'wow', 'agent_status_message': 'much status'} +X-Openstack-Ironic-Api-Version: 1.80 +{"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}"} +POST: /v1/events {'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-25366fa2-6c97-4d45-be2b-983886366028 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -POST: /v1/heartbeat/bf812c3c-b3e8-490c-b102-4a1e02221c4e {'callback_url': 'url'} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-8be2d9c2-95f9-4b2b-9d5a-663b9021cac8 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'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-36282ade-99f4-45c3-8d07-4b6a37a7cdd9 +Openstack-Request-Id: req-ff06328f-3d46-4f08-8d52-ca5a6ec2f852 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:01.007032+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"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'] is not of type 'string', 'null'\", \"debuginfo\": null}"} +POST: /v1/events {'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-ad9ad791-bd8d-4058-93ef-63afc754f773 +Openstack-Request-Id: req-61505ad0-7ea7-456f-b1cf-d49a74fe6efd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status ... ok -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} -GET: /v1/allocations/ba!na!na! {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} -GET: /v1/allocations/cfbfa26e-27ac-4769-80cc-542e09fcefdb.json {} -GOT:{'uuid': 'cfbfa26e-27ac-4769-80cc-542e09fcefdb', 'created_at': '2025-02-07T21:27:59.866889+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/cfbfa26e-27ac-4769-80cc-542e09fcefdb', 'rel': 'self'}, {'href': 'http://localhost/allocations/cfbfa26e-27ac-4769-80cc-542e09fcefdb', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/6313e596-2330-493c-92d3-593d0bd6dd36 {} -GOT:{'uuid': '6313e596-2330-493c-92d3-593d0bd6dd36', 'created_at': '2025-02-07T21:28:00.123814+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'pg.json', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/6313e596-2330-493c-92d3-593d0bd6dd36', 'rel': 'self'}, {'href': 'http://localhost/allocations/6313e596-2330-493c-92d3-593d0bd6dd36', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/e4a83e96-9726-42d7-a8f2-2e7147bac4e4 {} -GOT:{'uuid': 'e4a83e96-9726-42d7-a8f2-2e7147bac4e4', 'created_at': '2025-02-07T21:28:00.349460+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'pg.1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/e4a83e96-9726-42d7-a8f2-2e7147bac4e4', 'rel': 'self'}, {'href': 'http://localhost/allocations/e4a83e96-9726-42d7-a8f2-2e7147bac4e4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/a01b27c5-a04a-4290-a276-d463ac203606?fields=owner {} -GOT:{'owner': '12345', 'links': [{'href': 'http://localhost/v1/allocations/a01b27c5-a04a-4290-a276-d463ac203606', 'rel': 'self'}, {'href': 'http://localhost/allocations/a01b27c5-a04a-4290-a276-d463ac203606', 'rel': 'bookmark'}]} -GET: /v1/allocations/c9aa486f-dd13-4f10-a316-661960b3b1c6 {} -GOT:{'uuid': 'c9aa486f-dd13-4f10-a316-661960b3b1c6', 'created_at': '2025-02-07T21:28:00.849379+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/c9aa486f-dd13-4f10-a316-661960b3b1c6', 'rel': 'self'}, {'href': 'http://localhost/allocations/c9aa486f-dd13-4f10-a316-661960b3b1c6', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations/c9aa486f-dd13-4f10-a316-661960b3b1c6 {} -GOT:{'uuid': 'c9aa486f-dd13-4f10-a316-661960b3b1c6', 'created_at': '2025-02-07T21:28:00.849379+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/c9aa486f-dd13-4f10-a316-661960b3b1c6', 'rel': 'self'}, {'href': 'http://localhost/allocations/c9aa486f-dd13-4f10-a316-661960b3b1c6', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /allocations/c9aa486f-dd13-4f10-a316-661960b3b1c6 {} -GOT:{'uuid': 'c9aa486f-dd13-4f10-a316-661960b3b1c6', 'created_at': '2025-02-07T21:28:00.849379+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/c9aa486f-dd13-4f10-a316-661960b3b1c6', 'rel': 'self'}, {'href': 'http://localhost/allocations/c9aa486f-dd13-4f10-a316-661960b3b1c6', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/allocations {} -GOT:{'allocations': [{'uuid': '40b8e0fd-c2cb-47f4-b87d-35fa78807418', 'created_at': '2025-02-07T21:28:01.107279+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation0', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/40b8e0fd-c2cb-47f4-b87d-35fa78807418', 'rel': 'self'}, {'href': 'http://localhost/allocations/40b8e0fd-c2cb-47f4-b87d-35fa78807418', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '799641a6-d4d0-4edc-bce2-f8087cf98990', 'created_at': '2025-02-07T21:28:01.109384+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/799641a6-d4d0-4edc-bce2-f8087cf98990', 'rel': 'self'}, {'href': 'http://localhost/allocations/799641a6-d4d0-4edc-bce2-f8087cf98990', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '0f94387f-02f4-4ffa-820f-13e0592a40fd', 'created_at': '2025-02-07T21:28:01.111259+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/0f94387f-02f4-4ffa-820f-13e0592a40fd', 'rel': 'self'}, {'href': 'http://localhost/allocations/0f94387f-02f4-4ffa-820f-13e0592a40fd', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '7b4c5702-4f11-4a64-b88b-0453e7554788', 'created_at': '2025-02-07T21:28:01.113184+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation3', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/7b4c5702-4f11-4a64-b88b-0453e7554788', 'rel': 'self'}, {'href': 'http://localhost/allocations/7b4c5702-4f11-4a64-b88b-0453e7554788', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'c9b4764c-6900-42c9-aba9-ae9a42f176e2', 'created_at': '2025-02-07T21:28:01.114937+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation4', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/c9b4764c-6900-42c9-aba9-ae9a42f176e2', 'rel': 'self'}, {'href': 'http://localhost/allocations/c9b4764c-6900-42c9-aba9-ae9a42f176e2', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/allocations {} -GOT:{'allocations': [{'uuid': '01189ffc-d760-4272-aa05-67eac66e9ae9', 'created_at': '2025-02-07T21:28:01.368017+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/01189ffc-d760-4272-aa05-67eac66e9ae9', 'rel': 'self'}, {'href': 'http://localhost/allocations/01189ffc-d760-4272-aa05-67eac66e9ae9', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/allocations?sort_key=uuid {} -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid_old -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid_old ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_mismatch_owner -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_mismatch_owner ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for device_id: DEVICE_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} +POST: /v1/events {'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-d0e47e9e-2c57-4043-9b20-254872438ba9 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/drivers/fake-hardware-type {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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 {} -GOT:{'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/raid/logical_disk_properties {} -GOT:{'foo': 'description of foo'} -GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} -GOT:{'foo': 'description of foo'} -GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} -GOT:{'foo': 'description of foo'} -GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} -GOT:{'foo': 'description of foo'} -GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-c15497dc-5875-43f3-a68a-439bcd70d32f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-da0428c8-fedf-4712-8e59-73810fc3e9ac -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/ports/?limit=3 {} -GOT:{'ports': [{'uuid': '73690799-8a42-4d09-a6de-4fb2151637dc', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/73690799-8a42-4d09-a6de-4fb2151637dc', 'rel': 'self'}, {'href': 'http://localhost/ports/73690799-8a42-4d09-a6de-4fb2151637dc', 'rel': 'bookmark'}]}, {'uuid': '9157bbb7-5b3f-4047-8cad-c38d321e7793', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/9157bbb7-5b3f-4047-8cad-c38d321e7793', 'rel': 'self'}, {'href': 'http://localhost/ports/9157bbb7-5b3f-4047-8cad-c38d321e7793', 'rel': 'bookmark'}]}, {'uuid': '56634db5-b1c1-470a-b4fc-2881c66ca5aa', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/56634db5-b1c1-470a-b4fc-2881c66ca5aa', 'rel': 'self'}, {'href': 'http://localhost/ports/56634db5-b1c1-470a-b4fc-2881c66ca5aa', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=56634db5-b1c1-470a-b4fc-2881c66ca5aa'} -GET: /v1/ports?fields=address,uuid {} -GOT:{'ports': [{'uuid': 'ffa972bf-c891-4084-9179-33dcffb67a8a', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/ffa972bf-c891-4084-9179-33dcffb67a8a', 'rel': 'self'}, {'href': 'http://localhost/ports/ffa972bf-c891-4084-9179-33dcffb67a8a', 'rel': 'bookmark'}]}, {'uuid': 'cb55fd4b-683c-4c54-87c7-e9a07e2aa730', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/cb55fd4b-683c-4c54-87c7-e9a07e2aa730', 'rel': 'self'}, {'href': 'http://localhost/ports/cb55fd4b-683c-4c54-87c7-e9a07e2aa730', 'rel': 'bookmark'}]}, {'uuid': '1ea2afa0-65d0-44c3-afce-1c558db0427b', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/1ea2afa0-65d0-44c3-afce-1c558db0427b', 'rel': 'self'}, {'href': 'http://localhost/ports/1ea2afa0-65d0-44c3-afce-1c558db0427b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=1ea2afa0-65d0-44c3-afce-1c558db0427b'} -GET: /v1/ports {} -GOT:{'ports': [{'uuid': '012763ff-953b-4fda-9217-d0cdcada75df', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/012763ff-953b-4fda-9217-d0cdcada75df', 'rel': 'self'}, {'href': 'http://localhost/ports/012763ff-953b-4fda-9217-d0cdcada75df', 'rel': 'bookmark'}]}, {'uuid': '15d389bc-0130-4101-a542-5de3830d0370', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/15d389bc-0130-4101-a542-5de3830d0370', 'rel': 'self'}, {'href': 'http://localhost/ports/15d389bc-0130-4101-a542-5de3830d0370', 'rel': 'bookmark'}]}, {'uuid': '20557142-fe63-4cbd-97c0-2ee40a8a9fd2', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/20557142-fe63-4cbd-97c0-2ee40a8a9fd2', 'rel': 'self'}, {'href': 'http://localhost/ports/20557142-fe63-4cbd-97c0-2ee40a8a9fd2', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=20557142-fe63-4cbd-97c0-2ee40a8a9fd2'} -GET: /v1/ports/detail {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:01.069876+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}]} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781/detail {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-52cc9131-ba23-4e1b-85de-e02e84f83439 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/ports/detail?node=test-node {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-033d6d88-bbe9-4e0e-8b14-f42088183fca -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/ports/detail?node=test-node {} -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_address_invalid_format -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_address_invalid_format ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_deploy_iso -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_deploy_iso ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_owner -ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_owner ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_older_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_older_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property -ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_esp_image -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_esp_image ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root ... ok -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid ... ok -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-8b2eba2c-067a-4698-8806-bc39fcce02ea +Openstack-Request-Id: req-981dc20b-1cd9-4cda-99ed-f4d96c1eb69e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:00.265635+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for mac_address: INVALID_MAC_ADDRESS\", \"debuginfo\": null}"} +POST: /v1/events {'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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-c4faf869-3ee8-4226-bc77-87a9f1802141 +Openstack-Request-Id: req-af115f49-87ca-4c78-b3ba-f37a4eaa5585 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:00.549583+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 409 Conflict +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} +POST: /v1/events {'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-380eae94-dfe6-4417-a68d-cbf725d75864 +Openstack-Request-Id: req-4130c52e-6e00-45ac-9807-692c31b6cb86 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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-f9ef53a9-7a5f-46e8-9ea3-b333b0a9c7fb +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"} +POST: /v1/events {'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-32354028-ea91-4bdb-acdc-03ae6f852fc8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:01.121923+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} + +POST: /v1/events {'events': [{'event': 'network.unbind_port', 'UNKNOWN': 'EVENT_PROPERTY'}]} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-54a9ad55-1050-471f-a7c0-a9694526fe09 +Openstack-Request-Id: req-ef45ee35-c664-4e9a-8bb4-57c74958b99d X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'internal_info': {'a': 'b'}} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +GOT:{'history': []} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?detail=true {} +GOT:{'history': [{'uuid': '9c2ee9d9-40c4-4cf8-841c-072419ab1833', 'created_at': '2024-01-06T15:33:09.221434+00:00', 'severity': None, 'event_type': None, 'event': 'meow', 'conductor': 'cat-tree1', 'user': 'peaches', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9c2ee9d9-40c4-4cf8-841c-072419ab1833', 'rel': 'self'}]}, {'uuid': '37653ae4-20d4-46e6-a160-ec3a459d61e7', 'created_at': '2024-01-06T15:33:09.223878+00:00', 'severity': None, 'event_type': None, 'event': 'purr', 'conductor': 'cat-tree2', 'user': 'sage', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/37653ae4-20d4-46e6-a160-ec3a459d61e7', 'rel': 'self'}]}, {'uuid': 'f45b8674-30e3-495a-b5b8-600573e9b361', 'created_at': '2024-01-06T15:33:09.225711+00:00', 'severity': None, 'event_type': None, 'event': 'grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr!', 'conductor': 'cat-tree3', 'user': 'bella', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f45b8674-30e3-495a-b5b8-600573e9b361', 'rel': 'self'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +GOT:{'history': [{'uuid': 'd70d495b-e977-4d37-aeca-dfc7c3fb117e', 'created_at': '2024-01-06T15:33:09.634310+00:00', 'severity': None, 'event': 'meow', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d70d495b-e977-4d37-aeca-dfc7c3fb117e', 'rel': 'self'}]}, {'uuid': '1b1c31db-112a-4be2-84d4-11b02fd7f2a5', 'created_at': '2024-01-06T15:33:09.635443+00:00', 'severity': None, 'event': 'purr', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/1b1c31db-112a-4be2-84d4-11b02fd7f2a5', 'rel': 'self'}]}, {'uuid': '62f46f1e-a70e-4be2-a2af-aa19fa2bceba', 'created_at': '2024-01-06T15:33:09.636505+00:00', 'severity': None, 'event': 'grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/62f46f1e-a70e-4be2-a2af-aa19fa2bceba', 'rel': 'self'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_agent_status_error +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_agent_status_error ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_older_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_older_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface ... ok GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0c2afa45-d0a2-41f3-835b-72202ca937dc -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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-56e00629-857d-41d0-8cb7-12640b1187ff +Openstack-Request-Id: req-57c309fc-1f99-4697-9b6b-b5acf65ec5fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:01.940673+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-9692754a-ecce-4806-aaaa-979ee9babfac -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-20c3047b-b79c-4b70-b1be-999771fa8b6c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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", "cpus": "8", "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {'uuid': 'ab22001e-924e-478e-aa84-f421d0c9f1f3', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': 'foo', 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ed8df5b0-f391-4271-bd78-9eee8c15d637', 'owner': None} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/nodes/ab22001e-924e-478e-aa84-f421d0c9f1f3 -Openstack-Request-Id: req-96e9ac0f-56bb-4feb-b9c3-a87c070bbbd0 +Location: http://localhost/v1/allocations/ed8df5b0-f391-4271-bd78-9eee8c15d637 +Openstack-Request-Id: req-b1d6fc78-8740-42c3-bbe0-3b44cfdd10e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "ab22001e-924e-478e-aa84-f421d0c9f1f3", "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", "cpus": "8", "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/ab22001e-924e-478e-aa84-f421d0c9f1f3", "rel": "self"}, {"href": "http://localhost/nodes/ab22001e-924e-478e-aa84-f421d0c9f1f3", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ab22001e-924e-478e-aa84-f421d0c9f1f3/ports", "rel": "self"}, {"href": "http://localhost/nodes/ab22001e-924e-478e-aa84-f421d0c9f1f3/ports", "rel": "bookmark"}]} -GET: /v1/nodes/ab22001e-924e-478e-aa84-f421d0c9f1f3 {} -GOT:{'uuid': 'ab22001e-924e-478e-aa84-f421d0c9f1f3', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/ab22001e-924e-478e-aa84-f421d0c9f1f3', 'rel': 'self'}, {'href': 'http://localhost/nodes/ab22001e-924e-478e-aa84-f421d0c9f1f3', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/ab22001e-924e-478e-aa84-f421d0c9f1f3/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ab22001e-924e-478e-aa84-f421d0c9f1f3/ports', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "ed8df5b0-f391-4271-bd78-9eee8c15d637", "created_at": "2024-01-06T15:33:06.962133+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/ed8df5b0-f391-4271-bd78-9eee8c15d637", "rel": "self"}, {"href": "http://localhost/allocations/ed8df5b0-f391-4271-bd78-9eee8c15d637", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/ed8df5b0-f391-4271-bd78-9eee8c15d637 {} +GOT:{'uuid': 'ed8df5b0-f391-4271-bd78-9eee8c15d637', 'created_at': '2024-01-06T15:33:06.962133+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'foo', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/ed8df5b0-f391-4271-bd78-9eee8c15d637', 'rel': 'self'}, {'href': 'http://localhost/allocations/ed8df5b0-f391-4271-bd78-9eee8c15d637', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': '41561904-adb2-4a7d-bda9-198c97c0f92c', 'owner': None} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-05c39f89-7144-41dd-8c28-62559d6ab9cd +Openstack-Request-Id: req-396c59f2-3499-4d9f-a782-c539a4899b5e X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_valid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_valid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_mkisofs_fails -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_mkisofs_fails ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress -ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress ... ok -GOT:{'uuid': 'a66639aa-c76d-4096-a48d-e29964b4aaea', 'created_at': '2025-02-07T21:28:00.591434+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/a66639aa-c76d-4096-a48d-e29964b4aaea', 'rel': 'self'}, {'href': 'http://localhost/allocations/a66639aa-c76d-4096-a48d-e29964b4aaea', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f3fd2dee-fe69-4b8e-878d-35447574606a', 'owner': None} -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource_class field is mandatory when not backfilling\", \"debuginfo\": null}"} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '1308b765-50d3-478d-a586-264c7068cc42', 'owner': '12345'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-97ecf9e9-337a-4076-87d8-8f3eeb26a197 +Location: http://localhost/v1/allocations/1308b765-50d3-478d-a586-264c7068cc42 +Openstack-Request-Id: req-a48d2e33-ab66-410e-834e-4553677b40c4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ebaf399b-a059-43fb-ac54-831b130127ab', 'owner': None} +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1308b765-50d3-478d-a586-264c7068cc42", "created_at": "2024-01-06T15:33:07.900971+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/1308b765-50d3-478d-a586-264c7068cc42", "rel": "self"}, {"href": "http://localhost/allocations/1308b765-50d3-478d-a586-264c7068cc42", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/1308b765-50d3-478d-a586-264c7068cc42 {} +GOT:{'uuid': '1308b765-50d3-478d-a586-264c7068cc42', 'created_at': '2024-01-06T15:33:07.900971+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/1308b765-50d3-478d-a586-264c7068cc42', 'rel': 'self'}, {'href': 'http://localhost/allocations/1308b765-50d3-478d-a586-264c7068cc42', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0c402ed4-4635-4e6c-afe5-784459417229', 'owner': None} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/allocations/ebaf399b-a059-43fb-ac54-831b130127ab -Openstack-Request-Id: req-e629d10c-3c3b-4f43-abc0-3237ae6cd53b +Location: http://localhost/v1/allocations/0c402ed4-4635-4e6c-afe5-784459417229 +Openstack-Request-Id: req-cf68d2fd-096d-45fc-9940-04e76270cc22 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.60 -{"uuid": "ebaf399b-a059-43fb-ac54-831b130127ab", "created_at": "2025-02-07T21:28:01.118083+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/ebaf399b-a059-43fb-ac54-831b130127ab", "rel": "self"}, {"href": "http://localhost/allocations/ebaf399b-a059-43fb-ac54-831b130127ab", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/ebaf399b-a059-43fb-ac54-831b130127ab {} -GOT:{'uuid': 'ebaf399b-a059-43fb-ac54-831b130127ab', 'created_at': '2025-02-07T21:28:01.118083+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/ebaf399b-a059-43fb-ac54-831b130127ab', 'rel': 'self'}, {'href': 'http://localhost/allocations/ebaf399b-a059-43fb-ac54-831b130127ab', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f0cb6e61-30bc-4533-b135-5c76c60756bc'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "0c402ed4-4635-4e6c-afe5-784459417229", "created_at": "2024-01-06T15:33:08.363158+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/0c402ed4-4635-4e6c-afe5-784459417229", "rel": "self"}, {"href": "http://localhost/allocations/0c402ed4-4635-4e6c-afe5-784459417229", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/0c402ed4-4635-4e6c-afe5-784459417229 {} +GOT:{'uuid': '0c402ed4-4635-4e6c-afe5-784459417229', 'created_at': '2024-01-06T15:33:08.363158+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '123456', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/0c402ed4-4635-4e6c-afe5-784459417229', 'rel': 'self'}, {'href': 'http://localhost/allocations/0c402ed4-4635-4e6c-afe5-784459417229', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '3fb4b09c-8a8e-4462-ad6d-0de19ee2b242', 'owner': '12345'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Location: http://localhost/v1/allocations/f0cb6e61-30bc-4533-b135-5c76c60756bc -Openstack-Request-Id: req-b36a1ac9-dda5-4be0-9d6a-563ca83d1c09 +Openstack-Request-Id: req-91c0c6ee-621f-48df-a266-a11cf6e7a109 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 -{"uuid": "f0cb6e61-30bc-4533-b135-5c76c60756bc", "created_at": "2025-02-07T21:28:01.365531+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/f0cb6e61-30bc-4533-b135-5c76c60756bc", "rel": "self"}, {"href": "http://localhost/allocations/f0cb6e61-30bc-4533-b135-5c76c60756bc", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/f0cb6e61-30bc-4533-b135-5c76c60756bc {} -GOT:{'uuid': 'f0cb6e61-30bc-4533-b135-5c76c60756bc', 'created_at': '2025-02-07T21:28:01.365531+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/f0cb6e61-30bc-4533-b135-5c76c60756bc', 'rel': 'self'}, {'href': 'http://localhost/allocations/f0cb6e61-30bc-4533-b135-5c76c60756bc', 'rel': 'bookmark'}], 'node_uuid': None} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'fbf1c5e1-690d-48ad-90f3-aaf93839e601', 'owner': '54321'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f021aa53-d1b8-4839-812f-c34c7e790354', 'owner': '12345'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8e035f79-3705-4dd9-ad4d-243f16b0933e -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '93ef3633-f5a1-412e-9580-8d20c4732587', 'owner': '12345'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/allocations/93ef3633-f5a1-412e-9580-8d20c4732587 -Openstack-Request-Id: req-4ffa8adf-714c-4cff-9b2c-34cf3ccbb4a4 +Openstack-Request-Id: req-5ecab5ee-d0e7-46f0-b64b-75f11b1a59b0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.60 -{"uuid": "93ef3633-f5a1-412e-9580-8d20c4732587", "created_at": "2025-02-07T21:28:01.946551+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/93ef3633-f5a1-412e-9580-8d20c4732587", "rel": "self"}, {"href": "http://localhost/allocations/93ef3633-f5a1-412e-9580-8d20c4732587", "rel": "bookmark"}], "node_uuid": null} -GET: /v1/allocations/93ef3633-f5a1-412e-9580-8d20c4732587 {} -GOT:{'uuid': '93ef3633-f5a1-412e-9580-8d20c4732587', 'created_at': '2025-02-07T21:28:01.946551+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/93ef3633-f5a1-412e-9580-8d20c4732587', 'rel': 'self'}, {'href': 'http://localhost/allocations/93ef3633-f5a1-412e-9580-8d20c4732587', 'rel': 'bookmark'}], 'node_uuid': None} -GET: /v1/deploy_templates/?limit=3 {} -GOT:{'deploy_templates': [{'uuid': '34a511b1-b4a1-4567-9e0a-741fa88fe81d', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/34a511b1-b4a1-4567-9e0a-741fa88fe81d', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/34a511b1-b4a1-4567-9e0a-741fa88fe81d', 'rel': 'bookmark'}]}, {'uuid': '46f2d0c2-cdb9-4c9c-9824-fd19422d2b25', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/46f2d0c2-cdb9-4c9c-9824-fd19422d2b25', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/46f2d0c2-cdb9-4c9c-9824-fd19422d2b25', 'rel': 'bookmark'}]}, {'uuid': '2cb6e7e2-014d-4d25-b640-5d80162e3ddd', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/2cb6e7e2-014d-4d25-b640-5d80162e3ddd', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/2cb6e7e2-014d-4d25-b640-5d80162e3ddd', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=2cb6e7e2-014d-4d25-b640-5d80162e3ddd'} -GET: /v1/deploy_templates?fields=uuid,steps {} -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with an owner Project ID value 12345 not matching the requestor Project ID 0987. Policy baremetal:allocation:create_restricted is required for this capability.\", \"debuginfo\": null}"} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'traits': [], 'uuid': '666189bc-16c5-4b7e-8761-c9ed746f7091', 'owner': None} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-299decf4-44ba-417b-adf0-830245220d62 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-c7baafaf-2810-4b83-a432-0afc3f3ef4bb +Openstack-Request-Id: req-eafb6b49-f0a3-45fb-9f49-ed59568e5317 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.17 - +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' is too long\", \"debuginfo\": null}"} +POST: /v1/allocations {'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': 'f36e29ac-5084-4ba5-a1e3-3d83553c9e82', 'owner': None} +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_old_version +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_old_version ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-615d5fab-b43c-4820-afa7-d3172418f8a5 +Openstack-Request-Id: req-594baf18-ebed-4802-aa33-3df1eb32f756 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 @@ -9477,7 +8620,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-696c58bf-0154-400b-b6fa-5072f13078a9 +Openstack-Request-Id: req-05bc9672-bf2a-4b8d-b5b5-8dcd28f27259 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 @@ -9485,7 +8628,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e48cd9f4-86ef-4973-99ff-bf523781ca07 +Openstack-Request-Id: req-6c7112c2-9931-4f13-9fee-1262f214f6d6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -9493,7 +8636,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-94ead24f-705f-46fc-85b0-d5463946baa7 +Openstack-Request-Id: req-a79ccf4b-5ce1-4c77-ae96-819737b01c5f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -9501,7 +8644,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ff651d30-7805-45d5-b2be-73956a79ca9d +Openstack-Request-Id: req-5ca58f68-6a35-4eeb-a508-dde77aae13b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -9509,7 +8652,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-350addfa-e22f-4eed-b760-97bd99466f27 +Openstack-Request-Id: req-3cf265fd-13fa-4d20-84c8-817242532271 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -9517,7 +8660,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1b1d26ed-95fa-43a9-b2a7-83bfcd5a5feb +Openstack-Request-Id: req-bf3e660a-bc8d-4f49-bac1-3b0f04d3f264 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -9525,7 +8668,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-aa59751b-721a-41d2-bcb3-2c179a473938 +Openstack-Request-Id: req-d510b26e-0fe5-4cc0-b813-e7caba867a2f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -9533,7 +8676,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-89e45940-fa56-4ac9-bb09-57f2d2ab5f93 +Openstack-Request-Id: req-c50a6013-8ea8-4af2-9f33-a5d67338030e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -9541,7 +8684,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-cfe2c58b-f033-40b8-b0cc-b3095c5ef45f +Openstack-Request-Id: req-4a86d81a-c024-4057-bf04-a8684ec1d218 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -9549,7 +8692,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-dbd30e3e-68c6-465d-9de6-5e27c5c25d71 +Openstack-Request-Id: req-c1203ff3-a0e0-4239-9294-1a13c4eb574a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -9557,7 +8700,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'bios'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-50cda6cf-3a4e-4ac0-9741-b1b23865b53b +Openstack-Request-Id: req-0a84c29c-7bed-4f07-8a2c-9e668bca9973 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 @@ -9565,3321 +8708,3018 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'bios'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-916b61eb-9f54-4855-a29d-c53e9bf7a48c +Openstack-Request-Id: req-557223af-74f2-4c2b-8fa2-caf440874c6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'unsupported-efi'} -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis ... ok -GOT:Response: 406 Not Acceptable +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7c6747ee-aefb-4cc4-a0df-bc854b1c884c +Openstack-Request-Id: req-182768d7-d8bf-4520-9584-cd491e5816d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] -GOT:Response: 406 Not Acceptable +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-536ed365-1e92-4413-a635-39bc98e12bd0 +Openstack-Request-Id: req-56d81013-461f-4c62-b22c-9d94d02adfc9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'b143f66a-8191-4e59-87f0-b4aec79d8a88', 'op': 'replace'}] -GOT:Response: 200 OK +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_valid_extra +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_valid_extra ... ok +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -Openstack-Request-Id: req-209989fa-8fc8-4dad-8c95-a9f13c5b780a +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-b73263df-f6c9-4b52-96e8-4ca1f29c47b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.24 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:00.024822+00:00", "updated_at": "2025-02-07T21:28:00.069729+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "b143f66a-8191-4e59-87f0-b4aec79d8a88"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '70b555cf-4b63-46f1-8397-825ea7c38caa', 'op': 'replace'}] -GOT:Response: 406 Not Acceptable +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", "cpus": "8", "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'clean_step': {}, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': 'neutron', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, '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'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -Openstack-Request-Id: req-0bd78d38-0848-438f-b2e3-c72642c44fa1 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-868256a0-e772-4663-b1a4-d30a6508a288 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '56ac0321-ed7a-4412-a305-f57c26bffbbc', 'op': 'remove'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.21 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:09.608373+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", "cpus": "8", "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:09.608373+00:00', 'updated_at': None, 'clean_step': {}, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': 'flat', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'class2', 'target_power_state': None, 'target_provision_state': None, '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'}]} +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_valid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_valid_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_008_nodes_get_node_other_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_008_nodes_get_node_other_admin ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_different_callback_url +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_different_callback_url ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_pagination +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_pagination ... ok +ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates +ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes ... ok +GOT:{'allocations': [{'uuid': 'ab0c085e-182e-4ac3-97d5-e6cba3938ddc', 'created_at': '2024-01-06T15:33:07.714340+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation0', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/ab0c085e-182e-4ac3-97d5-e6cba3938ddc', 'rel': 'self'}, {'href': 'http://localhost/allocations/ab0c085e-182e-4ac3-97d5-e6cba3938ddc', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '6faa1ebb-54c3-4d20-a1f2-0e7628741f35', 'created_at': '2024-01-06T15:33:07.715946+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/6faa1ebb-54c3-4d20-a1f2-0e7628741f35', 'rel': 'self'}, {'href': 'http://localhost/allocations/6faa1ebb-54c3-4d20-a1f2-0e7628741f35', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '56d0be6b-cb60-403e-9f7e-a362b63e8cb7', 'created_at': '2024-01-06T15:33:07.722104+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/56d0be6b-cb60-403e-9f7e-a362b63e8cb7', 'rel': 'self'}, {'href': 'http://localhost/allocations/56d0be6b-cb60-403e-9f7e-a362b63e8cb7', 'rel': 'bookmark'}], 'node_uuid': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=56d0be6b-cb60-403e-9f7e-a362b63e8cb7'} +GET: /v1/allocations?fields=uuid,extra {} +GOT:{'allocations': [{'uuid': '84f14786-0522-47f7-b95c-5f127ff92bf8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/84f14786-0522-47f7-b95c-5f127ff92bf8', 'rel': 'self'}, {'href': 'http://localhost/allocations/84f14786-0522-47f7-b95c-5f127ff92bf8', 'rel': 'bookmark'}]}, {'uuid': '9c0b3637-bc5e-4c24-ba8b-419ea0d3aa78', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/9c0b3637-bc5e-4c24-ba8b-419ea0d3aa78', 'rel': 'self'}, {'href': 'http://localhost/allocations/9c0b3637-bc5e-4c24-ba8b-419ea0d3aa78', 'rel': 'bookmark'}]}, {'uuid': '5487e83b-82bd-4207-ba3f-4ab06d9ed64a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/5487e83b-82bd-4207-ba3f-4ab06d9ed64a', 'rel': 'self'}, {'href': 'http://localhost/allocations/5487e83b-82bd-4207-ba3f-4ab06d9ed64a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=5487e83b-82bd-4207-ba3f-4ab06d9ed64a'} +GET: /v1/allocations {} +GOT:{'allocations': [{'uuid': '39f89614-3c60-4429-88b2-45504022e476', 'created_at': '2024-01-06T15:33:08.633332+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation0', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/39f89614-3c60-4429-88b2-45504022e476', 'rel': 'self'}, {'href': 'http://localhost/allocations/39f89614-3c60-4429-88b2-45504022e476', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '0d74a812-e126-4876-ab20-f5da1ed5e5e4', 'created_at': '2024-01-06T15:33:08.635136+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/0d74a812-e126-4876-ab20-f5da1ed5e5e4', 'rel': 'self'}, {'href': 'http://localhost/allocations/0d74a812-e126-4876-ab20-f5da1ed5e5e4', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '0db695d7-2583-480d-8357-5ea486cfa180', 'created_at': '2024-01-06T15:33:08.636859+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/0db695d7-2583-480d-8357-5ea486cfa180', 'rel': 'self'}, {'href': 'http://localhost/allocations/0db695d7-2583-480d-8357-5ea486cfa180', 'rel': 'bookmark'}], 'node_uuid': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=0db695d7-2583-480d-8357-5ea486cfa180'} +GET: /v1/allocations {} +GOT:{'allocations': []} +GET: /v1/allocations?node=node-1 {} +GOT:{'allocations': [{'uuid': '3e8fcc20-c92d-49de-bf6c-a11a0bfbeba8', 'created_at': '2024-01-06T15:33:09.494643+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation0', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/3e8fcc20-c92d-49de-bf6c-a11a0bfbeba8', 'rel': 'self'}, {'href': 'http://localhost/allocations/3e8fcc20-c92d-49de-bf6c-a11a0bfbeba8', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '610b0b1e-f12b-48f0-9cbe-91bf6dc59788', 'created_at': '2024-01-06T15:33:09.497261+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/610b0b1e-f12b-48f0-9cbe-91bf6dc59788', 'rel': 'self'}, {'href': 'http://localhost/allocations/610b0b1e-f12b-48f0-9cbe-91bf6dc59788', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'b1e258f8-4a60-464f-8d7c-85728849c8e2', 'created_at': '2024-01-06T15:33:09.499492+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/b1e258f8-4a60-464f-8d7c-85728849c8e2', 'rel': 'self'}, {'href': 'http://localhost/allocations/b1e258f8-4a60-464f-8d7c-85728849c8e2', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/allocations?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'allocations': [{'uuid': '8ad3de8a-817b-4627-b1f0-77644d463009', 'created_at': '2024-01-06T15:33:09.930638+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/8ad3de8a-817b-4627-b1f0-77644d463009', 'rel': 'self'}, {'href': 'http://localhost/allocations/8ad3de8a-817b-4627-b1f0-77644d463009', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/allocations?node=banana {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-03455124-2efd-4882-9821-2c929e98d42a +Openstack-Request-Id: req-5ef59d0c-71f5-46fd-be44-9050b9f69478 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.24 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:00.551571+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'f42e3790-63bf-483b-a73e-b12d97f20efd', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '2f60c4c5-95ef-462b-bc14-3afd058b017b', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node banana could not be found.\", \"debuginfo\": null}"} +GET: /v1/allocations?owner=12345 {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner ... ok +ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str +ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_node_not_found +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra ... ok +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:09.608823+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': 'cinder', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:10.372784+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:10.372784+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': ['CUSTOM_1'], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods ... ok +ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str +ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_009_nodes_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_009_nodes_get_admin ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface ... ok +ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match +ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1d2c9da5-aaef-42f3-a7ef-8d34ec67a00b +Openstack-Request-Id: req-70b0cbc2-5fae-4391-888f-c9439e637fc3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.24 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:00.862331+00:00", "updated_at": "2025-02-07T21:28:00.910127+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "2f60c4c5-95ef-462b-bc14-3afd058b017b"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] -GOT:Response: 200 OK +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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/78b8c39c-1561-4efb-9a77-ac1a8b625250 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-d883c1b8-66ae-49c4-9c48-947908ced648 +Openstack-Request-Id: req-187aab84-c908-40c5-995d-97c71f795571 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:01.148236+00:00", "updated_at": "2025-02-07T21:28:01.193728+00:00", "address": "aa:bb:cc:dd:ee:ff", "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"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': False, 'op': 'add'}] -GOT:Response: 406 Not Acceptable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 78b8c39c-1561-4efb-9a77-ac1a8b625250 can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/f6be3b8b-3c56-46e8-bdd5-aeca8f5358d2 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1a427e08-4dcc-4e47-80cb-cf2342812057 +Openstack-Request-Id: req-25391624-852f-4a30-a138-ef4e5debdff4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] +{"uuid": "f6be3b8b-3c56-46e8-bdd5-aeca8f5358d2", "created_at": "2024-01-06T15:33:09.127066+00:00", "updated_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", "cpus": "8", "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/f6be3b8b-3c56-46e8-bdd5-aeca8f5358d2", "rel": "self"}, {"href": "http://localhost/nodes/f6be3b8b-3c56-46e8-bdd5-aeca8f5358d2", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f6be3b8b-3c56-46e8-bdd5-aeca8f5358d2/ports", "rel": "self"}, {"href": "http://localhost/nodes/f6be3b8b-3c56-46e8-bdd5-aeca8f5358d2/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': ''}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0487c341-5eef-4066-bd83-c2691099f447 +Openstack-Request-Id: req-3718513d-6cf4-48c4-878c-4a809bf4f6b0 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': ''}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-1ce3958e-c7d6-470e-8802-770ed0b3b64a X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/ports/52:54:00:cf:2d:31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'i am invalid'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-47c32bff-ba1e-4e69-a58f-3d1f8990cce2 +Openstack-Request-Id: req-befb1070-ce7d-44bd-b3ea-946a2d2c947c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +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}"} +PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'guido-van-rossum'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9b3f179f-f64a-4f91-928b-163276931ce9 +Openstack-Request-Id: req-f6a29a05-20dd-4bfc-910c-efad3f75d76d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:02.323620+00:00", "updated_at": "2025-02-07T21:28:02.363485+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_hostname -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_hostname ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_uefi_rootfs_fails -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_uefi_rootfs_fails ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_invalid_request -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_invalid_request ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed ... ok -GOT:{'allocations': [{'uuid': '2f835260-b58a-4c2c-8c1b-a2a8fadf9d6f', 'created_at': '2025-02-07T21:28:01.648046+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/2f835260-b58a-4c2c-8c1b-a2a8fadf9d6f', 'rel': 'self'}, {'href': 'http://localhost/allocations/2f835260-b58a-4c2c-8c1b-a2a8fadf9d6f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '7c582875-9652-4ce6-b934-9e9eaaeac09e', 'created_at': '2025-02-07T21:28:01.646500+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/7c582875-9652-4ce6-b934-9e9eaaeac09e', 'rel': 'self'}, {'href': 'http://localhost/allocations/7c582875-9652-4ce6-b934-9e9eaaeac09e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '8e516a7d-0fe3-406c-9598-c4fb7017fe67', 'created_at': '2025-02-07T21:28:01.644876+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation0', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/8e516a7d-0fe3-406c-9598-c4fb7017fe67', 'rel': 'self'}, {'href': 'http://localhost/allocations/8e516a7d-0fe3-406c-9598-c4fb7017fe67', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/allocations?sort_key=name {} -GOT:{'allocations': [{'uuid': '698d8e26-c6d5-4929-8c98-88508b7fe4fd', 'created_at': '2025-02-07T21:28:01.937506+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/698d8e26-c6d5-4929-8c98-88508b7fe4fd', 'rel': 'self'}, {'href': 'http://localhost/allocations/698d8e26-c6d5-4929-8c98-88508b7fe4fd', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '02dafb7d-816d-4419-830c-093a9fb1defa', 'created_at': '2025-02-07T21:28:01.935636+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/02dafb7d-816d-4419-830c-093a9fb1defa', 'rel': 'self'}, {'href': 'http://localhost/allocations/02dafb7d-816d-4419-830c-093a9fb1defa', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '1a107169-7327-4a5f-8843-4320ed5c0c94', 'created_at': '2025-02-07T21:28:01.933616+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation3', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/1a107169-7327-4a5f-8843-4320ed5c0c94', 'rel': 'self'}, {'href': 'http://localhost/allocations/1a107169-7327-4a5f-8843-4320ed5c0c94', 'rel': 'bookmark'}], 'node_uuid': None}]} -GET: /v1/allocations?sort_key=foo {} +X-Openstack-Ironic-Api-Version: 1.5 +{"uuid": "deadbeef-0000-1111-2222-333333333333", "created_at": "2024-01-06T15:33:11.146984+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", "cpus": "8", "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"}]} +PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'maintenance'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-3873eeba-08b9-476c-be6a-0b5a21e0ca83 +Openstack-Request-Id: req-57710a8c-fb09-4fb6-b6e7-100d1096ef6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} -GET: /v1/allocations?sort_key=extra {} +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 [{'path': '/name', 'op': 'add', 'value': 'management'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e25067a3-b497-45f6-98c0-253e813ed5f9 +Openstack-Request-Id: req-3f64b884-2bdf-4fe4-9f82-b43bef69f13f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} +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 [{'path': '/name', 'op': 'add', 'value': 'states'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-4e47e7d3-dc48-4bd4-bae9-38ce106cd498 +Openstack-Request-Id: req-8fde396e-f54f-474c-94f3-f74c92d06142 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} -GOT:Response: 400 Bad Request +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 [{'path': '/name', 'op': 'add', 'value': 'vendor_passthru'}] +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_old_version +ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_old_version ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node_policy_notfound +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node_policy_notfound ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_status_and_status +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_status_and_status ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links ... ok +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_1_values +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_1_values ... skipped 'For value storage' +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_node_uuid_not_allowed +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_node_uuid_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_policy_forbidden +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_policy_forbidden ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_010_nodes_get_other_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_010_nodes_get_other_admin ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_with_suffix +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_with_suffix ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-46bbe184-41de-4f39-9cca-e4f46b922e7e +Location: http://localhost/v1/allocations/f36e29ac-5084-4ba5-a1e3-3d83553c9e82 +Openstack-Request-Id: req-088df3a6-a805-4256-9839-b3d43124181f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"properties\\\" is an invalid field for sorting\", \"debuginfo\": null}"} -POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'data-center-1-chassis'} +{"uuid": "f36e29ac-5084-4ba5-a1e3-3d83553c9e82", "created_at": "2024-01-06T15:33:10.167560+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": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/f36e29ac-5084-4ba5-a1e3-3d83553c9e82", "rel": "self"}, {"href": "http://localhost/allocations/f36e29ac-5084-4ba5-a1e3-3d83553c9e82", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/f36e29ac-5084-4ba5-a1e3-3d83553c9e82 {} +GOT:{'uuid': 'f36e29ac-5084-4ba5-a1e3-3d83553c9e82', 'created_at': '2024-01-06T15:33:10.167560+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/f36e29ac-5084-4ba5-a1e3-3d83553c9e82', 'rel': 'self'}, {'href': 'http://localhost/allocations/f36e29ac-5084-4ba5-a1e3-3d83553c9e82', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': ['node-1', '4edba78b-607f-415c-9f43-5ec3b136975d'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'b03fa357-53d7-4ddd-be68-0acb409c2f9f', 'owner': None} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -Openstack-Request-Id: req-e41b0172-79c7-4a52-9932-8734004b86d7 +Location: http://localhost/v1/allocations/b03fa357-53d7-4ddd-be68-0acb409c2f9f +Openstack-Request-Id: req-02f26352-b429-4ece-9e9f-4303bc487191 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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'}]]} -POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {'foo': 123}, 'description': 'data-center-1-chassis'} +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "b03fa357-53d7-4ddd-be68-0acb409c2f9f", "created_at": "2024-01-06T15:33:10.654507+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "4edba78b-607f-415c-9f43-5ec3b136975d"], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/b03fa357-53d7-4ddd-be68-0acb409c2f9f", "rel": "self"}, {"href": "http://localhost/allocations/b03fa357-53d7-4ddd-be68-0acb409c2f9f", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/b03fa357-53d7-4ddd-be68-0acb409c2f9f {} +GOT:{'uuid': 'b03fa357-53d7-4ddd-be68-0acb409c2f9f', 'created_at': '2024-01-06T15:33:10.654507+00:00', 'updated_at': None, 'candidate_nodes': ['1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '4edba78b-607f-415c-9f43-5ec3b136975d'], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/b03fa357-53d7-4ddd-be68-0acb409c2f9f', 'rel': 'self'}, {'href': 'http://localhost/allocations/b03fa357-53d7-4ddd-be68-0acb409c2f9f', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '4e08c004-48d5-4ab4-8a8b-c31e51ff538a', 'owner': None} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -Openstack-Request-Id: req-54c925fd-f2b2-41ea-b505-70641b0977f8 +Location: http://localhost/v1/allocations/4e08c004-48d5-4ab4-8a8b-c31e51ff538a +Openstack-Request-Id: req-2cd4bcce-4967-4df7-8055-c7bdd634e83f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:28:02.877607+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 {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid -ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_older_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_older_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked -ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_none -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_none ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_valid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_valid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete -ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "4e08c004-48d5-4ab4-8a8b-c31e51ff538a", "created_at": "2024-01-06T15:33:11.046427+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/4e08c004-48d5-4ab4-8a8b-c31e51ff538a", "rel": "self"}, {"href": "http://localhost/allocations/4e08c004-48d5-4ab4-8a8b-c31e51ff538a", "rel": "bookmark"}], "node_uuid": null} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': 'fad414a0-dbb4-46e2-8277-2ed4347c1937', 'owner': None} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-8f594295-dfe3-4f45-89c1-eacda0be667f +Location: http://localhost/v1/allocations/fad414a0-dbb4-46e2-8277-2ed4347c1937 +Openstack-Request-Id: req-1be62458-bb86-492e-a67f-0bcb2b6c6355 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.11 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:02.145245+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", "cpus": "8", "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:02.145245+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "fad414a0-dbb4-46e2-8277-2ed4347c1937", "created_at": "2024-01-06T15:33:11.465377+00:00", "updated_at": null, "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": ["CUSTOM_GPU", "CUSTOM_FOO_BAR"], "links": [{"href": "http://localhost/v1/allocations/fad414a0-dbb4-46e2-8277-2ed4347c1937", "rel": "self"}, {"href": "http://localhost/allocations/fad414a0-dbb4-46e2-8277-2ed4347c1937", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/fad414a0-dbb4-46e2-8277-2ed4347c1937 {} +GOT:{'uuid': 'fad414a0-dbb4-46e2-8277-2ed4347c1937', 'created_at': '2024-01-06T15:33:11.465377+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'links': [{'href': 'http://localhost/v1/allocations/fad414a0-dbb4-46e2-8277-2ed4347c1937', 'rel': 'self'}, {'href': 'http://localhost/allocations/fad414a0-dbb4-46e2-8277-2ed4347c1937', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f1372f12-f917-4f6b-b8cf-28c2804efc6d', 'owner': None} +GOT:Response: 405 Method Not Allowed +Allow: DELETE, GET +Content-Type: application/json +{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '95700c9a-7f50-4af8-9b25-2ab8e3cff7e5', 'owner': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-cfd38eee-70bc-4079-a8aa-382a4f1822ee +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: Additional properties are not allowed ('node_uuid' was unexpected)\", \"debuginfo\": null}"} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'd341bf42-2565-4046-80c4-ece04e62b207', 'owner': None} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-73ea3103-c307-4e33-bb9c-8030084bf104 +Location: http://localhost/v1/allocations/d341bf42-2565-4046-80c4-ece04e62b207 +Openstack-Request-Id: req-08ba0c6e-c74b-4268-a893-557cf8a0e169 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.10 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:02.931899+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", "cpus": "8", "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:02.931899+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} +X-Openstack-Ironic-Api-Version: 1.60 +{"uuid": "d341bf42-2565-4046-80c4-ece04e62b207", "created_at": "2024-01-06T15:33:12.713533+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/d341bf42-2565-4046-80c4-ece04e62b207", "rel": "self"}, {"href": "http://localhost/allocations/d341bf42-2565-4046-80c4-ece04e62b207", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/d341bf42-2565-4046-80c4-ece04e62b207 {} +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type_old_api +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type_old_api ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:11.081926+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:02.931899+00:00', 'updated_at': None, 'clean_step': {}, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'description': 'useful stuff', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_false -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_false ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_inject_files -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_inject_files ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_custom_fields -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:11.081926+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/05797efa-a48e-4a54-b815-83218dc58319 {} +GOT:{'uuid': '05797efa-a48e-4a54-b815-83218dc58319', 'created_at': '2024-01-06T15:33:11.791713+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/05797efa-a48e-4a54-b815-83218dc58319', 'rel': 'self'}, {'href': 'http://localhost/nodes/05797efa-a48e-4a54-b815-83218dc58319', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/05797efa-a48e-4a54-b815-83218dc58319/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/05797efa-a48e-4a54-b815-83218dc58319/ports', 'rel': 'bookmark'}]} +GET: /v1/nodes/05797efa-a48e-4a54-b815-83218dc58319 {} +GOT:{'uuid': '05797efa-a48e-4a54-b815-83218dc58319', 'created_at': '2024-01-06T15:33:11.791713+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/05797efa-a48e-4a54-b815-83218dc58319', 'rel': 'self'}, {'href': 'http://localhost/nodes/05797efa-a48e-4a54-b815-83218dc58319', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/05797efa-a48e-4a54-b815-83218dc58319/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/05797efa-a48e-4a54-b815-83218dc58319/ports', 'rel': 'bookmark'}]} +GET: /nodes/05797efa-a48e-4a54-b815-83218dc58319 {} +GOT:{'uuid': '05797efa-a48e-4a54-b815-83218dc58319', 'created_at': '2024-01-06T15:33:11.791713+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/05797efa-a48e-4a54-b815-83218dc58319', 'rel': 'self'}, {'href': 'http://localhost/nodes/05797efa-a48e-4a54-b815-83218dc58319', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/05797efa-a48e-4a54-b815-83218dc58319/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/05797efa-a48e-4a54-b815-83218dc58319/ports', 'rel': 'bookmark'}]} +GET: /v1/nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0 {} +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_token +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_token ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_deprecated_without_owner +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_deprecated_without_owner ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden ... ok +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-c9334654-26c7-4ae8-ac26-eb43ad98bc80 +Openstack-Request-Id: req-499619f3-4127-458a-b951-7ed42d0a683e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:03.743657+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, "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", "cpus": "8", "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, "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"}]} +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", "cpus": "8", "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:03.743657+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, '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': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': None, 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_old_version -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_old_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk ... ok -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'description': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'cinder', 'target_power_state': None, 'target_provision_state': None, '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'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-89b558db-e466-418f-9e01-acd56456d4ec +Openstack-Request-Id: req-2bfd05ec-706f-4e29-818e-ff94dbf0d877 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for device_id: DEVICE_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} -POST: /v1/events {'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'}]} +{"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}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-c521ea0f-3bb3-4e9f-afcb-91cbba7dc8d3 +Openstack-Request-Id: req-bb6123d5-dbf1-4a17-950f-92837c9a1ab8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for mac_address: INVALID_MAC_ADDRESS\", \"debuginfo\": null}"} -POST: /v1/events {'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'}]} +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}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-92c8ed97-2dbd-43a4-9f8e-0baa15d9e2be +Openstack-Request-Id: req-dd093573-7fcc-4feb-8ea7-2fc9b62fdd33 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} -POST: /v1/events {'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'}]} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid ... ok +ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request +ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_forbidden +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_forbidden ... ok +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_2_unauthenticated_user_cannot_get_node +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_2_unauthenticated_user_cannot_get_node ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_false +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_false ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_verify_ca +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_verify_ca ... ok +ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request +ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_011_nodes_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_011_nodes_detail_get_admin ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_normal +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_normal ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_true +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_true ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden ... ok +ironic.tests.unit.api.test_root.TestRoot.test_get_root +ironic.tests.unit.api.test_root.TestRoot.test_get_root ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_version +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_version ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_older_version +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_older_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid ... ok +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} +GOT:{'bios': [{'created_at': '2024-01-06T15:32:59.835335+00:00', 'updated_at': None, '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'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?detail=False {} +GOT:{'bios': [{'created_at': '2024-01-06T15:33:00.336580+00:00', 'updated_at': None, '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'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1b4a025c-5aa9-4508-92c2-d0167c33428c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"} -POST: /v1/events {'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-85eb2446-5e3a-427b-891b-067f53288c51 +Openstack-Request-Id: req-1f4ac0e4-1abe-40de-af2e-756a511edf9c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -POST: /v1/events {'events': [{'event': 'network.unbind_port', 'UNKNOWN': 'EVENT_PROPERTY'}]} +X-Openstack-Ironic-Api-Version: 1.73 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?detail=True {} +GOT:{'bios': [{'created_at': '2024-01-06T15:33:01.791418+00:00', 'updated_at': None, 'name': 'virtualization', 'value': 'on', 'attribute_type': 'Enumeration', 'allowable_values': ['on', 'off'], 'lower_bound': None, 'max_length': None, 'min_length': None, 'read_only': False, 'reset_required': True, 'unique': False, 'upper_bound': None, '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'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?detail=True?fields=name,read_only {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-fd577c7a-8feb-46c1-82dc-7235171bd19a +Openstack-Request-Id: req-f9b10981-a30b-456f-96a8-cbe52daaa7e6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"} -DELETE: /v1/ports/52:54:00:cf:2d:31 +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}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?fields=name,read_only {} +GOT:{'bios': [{'created_at': '2024-01-06T15:33:02.625448+00:00', 'updated_at': None, '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'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?fields=name,read_only {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0b16a903-354c-4f01-bcb2-b5d78fb68d7e +Openstack-Request-Id: req-b0cf99a2-ff79-4dec-8460-97be6a10a09d X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 204 No Content -Openstack-Request-Id: req-f70a0095-5886-4df2-bdbe-2df1bb23df9d +X-Openstack-Ironic-Api-Version: 1.73 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?fields=['name', 'read_only'] received.\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} +GOT:{'virtualization': {'created_at': '2024-01-06T15:33:03.439060+00:00', 'updated_at': None, 'name': 'virtualization', 'value': 'on', 'attribute_type': 'Enumeration', 'allowable_values': ['on', 'off'], 'lower_bound': None, 'max_length': None, 'min_length': None, 'read_only': False, 'reset_required': True, 'unique': False, 'upper_bound': None, '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'}]}} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/fake_setting {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-1cacff47-1043-4300-99b1-a6423dae8f34 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 409 Conflict +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}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} +GOT:{'virtualization': {'created_at': '2024-01-06T15:33:04.613553+00:00', 'updated_at': None, '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'}]}} +DELETE: /v1/portgroups/52:54:00:cf:2d:31 +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-58832ee1-51b6-4476-98f7-588dcfcf5a8f +{"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 52:54:00:cf:2d:31\"}"} +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GOT:Response: 204 No Content +Openstack-Request-Id: req-51444619-4154-4ef6-8cce-303f90995452 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/da3eb708-1326-4583-a34b-b1ab45238407 -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-a645da3f-8f20-4337-a9d3-d337d307d457 +X-Openstack-Ironic-Api-Version: 1.80 + +DELETE: /v1/portgroups/pg.1 +GOT:Response: 204 No Content +Openstack-Request-Id: req-783ed6c1-2ea1-405f-82f3-b7c3e0602bce X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/portgroups/?limit=3 {} -GOT:{'portgroups': [{'uuid': '7d936fb7-c8ba-4419-bdbe-92277f9afc76', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/7d936fb7-c8ba-4419-bdbe-92277f9afc76', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7d936fb7-c8ba-4419-bdbe-92277f9afc76', 'rel': 'bookmark'}]}, {'uuid': '18dcb504-c28e-44f7-9703-098e16745660', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/18dcb504-c28e-44f7-9703-098e16745660', 'rel': 'self'}, {'href': 'http://localhost/portgroups/18dcb504-c28e-44f7-9703-098e16745660', 'rel': 'bookmark'}]}, {'uuid': '09e11952-193a-4edc-a6a5-51c058ec2c7b', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/09e11952-193a-4edc-a6a5-51c058ec2c7b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/09e11952-193a-4edc-a6a5-51c058ec2c7b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=09e11952-193a-4edc-a6a5-51c058ec2c7b'} -GET: /v1/portgroups?fields=address,uuid {} -GOT:{'portgroups': [{'uuid': '9bbb802b-0d5f-482f-8465-19300cd498e1', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/9bbb802b-0d5f-482f-8465-19300cd498e1', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9bbb802b-0d5f-482f-8465-19300cd498e1', 'rel': 'bookmark'}]}, {'uuid': 'ce504bcd-66f7-48af-9d2e-08e2d1844a4c', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/ce504bcd-66f7-48af-9d2e-08e2d1844a4c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/ce504bcd-66f7-48af-9d2e-08e2d1844a4c', 'rel': 'bookmark'}]}, {'uuid': '6fad72e8-99f1-40b6-ab82-336be8d487fe', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/portgroups/6fad72e8-99f1-40b6-ab82-336be8d487fe', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6fad72e8-99f1-40b6-ab82-336be8d487fe', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=6fad72e8-99f1-40b6-ab82-336be8d487fe'} -GET: /v1/portgroups {} -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description_oversize -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description_oversize ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk_old_api ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty ... ok -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_1_values -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_1_values ... skipped 'For value storage' -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_with_detail -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_with_detail ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_detail_and_fields -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_detail_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi ... ok +X-Openstack-Ironic-Api-Version: 1.80 + +DELETE: /v1/portgroups/blah GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-19572172-1a09-4381-af00-c52172755095 +Openstack-Request-Id: req-0822349f-4705-4c8c-834f-c542e8b39809 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -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-fa708543-a9cd-4dd3-8b60-fbd6c316d32d +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/portgroups/pg.1.json +GOT:Response: 204 No Content +Openstack-Request-Id: req-3d94677b-b690-413b-ba1d-b70d6af58dca X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.80 + +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\": \"\"}"} +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-41379a9e-8fa8-417d-8a7f-9d34b5591719 +Openstack-Request-Id: req-c6990751-9ffa-4111-9f7b-d7796dea03cd X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} +GET: / {} +GOT:{'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.80'}, 'versions': [{'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}]} +GET: /v1/foo {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f2e76d4c-e145-46bf-9f9d-a26c5e1976b3 +Openstack-Request-Id: req-051101c0-f6b0-4b20-b8cb-9359d13f35d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.67 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_verify_ca\\\" not recognised in this version\", \"debuginfo\": null}"} +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c6a9067e-bbf1-4b3c-ab77-d03c51702f8e +Openstack-Request-Id: req-b6880198-c5e3-4813-9f3f-1fddd7586740 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors +X-Openstack-Ironic-Api-Version: 1.35 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_version\\\" not recognised\", \"debuginfo\": null}"} +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'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-f41eb883-6f82-4359-97c3-40024145e91b +Openstack-Request-Id: req-a4a0ce9f-004e-4563-83d4-9f6108763e65 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.71 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fields \\\"agent_status\\\" and \\\"agent_status_message\\\" not recognised.\", \"debuginfo\": null}"} +POST: /v1/heartbeat/1477315a-10fe-4e2f-8626-6ec921b5871b {'callback_url': 'url'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-adde0008-935f-4c26-bcc4-53450e3d3700 +Openstack-Request-Id: req-9e26bbc3-156b-4f09-aefc-08d46e8d957c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=7cd47781-e86d-45e8-8c18-efef0b530e8b {} -GOT:{'node': {'uuid': '7cd47781-e86d-45e8-8c18-efef0b530e8b', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/7cd47781-e86d-45e8-8c18-efef0b530e8b', 'rel': 'self'}, {'href': 'http://localhost/nodes/7cd47781-e86d-45e8-8c18-efef0b530e8b', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'abcxyz', 'agent_token_required': True}} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=7cd47781-e86d-45e8-8c18-efef0b530e8b {} -GOT:{'node': {'uuid': '7cd47781-e86d-45e8-8c18-efef0b530e8b', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/7cd47781-e86d-45e8-8c18-efef0b530e8b', 'rel': 'self'}, {'href': 'http://localhost/nodes/7cd47781-e86d-45e8-8c18-efef0b530e8b', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': '******', 'agent_token_required': True}} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=7cd47781-e86d-45e8-8c18-efef0b530e8b {} -GOT:{'node': {'uuid': '7cd47781-e86d-45e8-8c18-efef0b530e8b', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/7cd47781-e86d-45e8-8c18-efef0b530e8b', 'rel': 'self'}, {'href': 'http://localhost/nodes/7cd47781-e86d-45e8-8c18-efef0b530e8b', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': '******', 'agent_token_required': True}} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} -GOT:{'node': {'uuid': 'c1c758ed-8d5b-40bc-89cf-4ccb9c5f0347', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/c1c758ed-8d5b-40bc-89cf-4ccb9c5f0347', 'rel': 'self'}, {'href': 'http://localhost/nodes/c1c758ed-8d5b-40bc-89cf-4ccb9c5f0347', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'some-value', 'agent_token_required': True}} -GET: /v1/lookup?node_uuid=5b085148-0a25-403d-820b-1a9b7ffdd352 {} -GOT:{'node': {'uuid': '5b085148-0a25-403d-820b-1a9b7ffdd352', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/5b085148-0a25-403d-820b-1a9b7ffdd352', 'rel': 'self'}, {'href': 'http://localhost/nodes/5b085148-0a25-403d-820b-1a9b7ffdd352', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'xyzabc', 'agent_token_required': True}} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=4d8a9d7f-d43d-45e3-b7c6-e88521771ee6 {} -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset ... ok -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_2_unauthenticated_user_cannot_get_node -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_2_unauthenticated_user_cannot_get_node ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-d843705d-cd77-431f-ae11-3dee78376177 +Openstack-Request-Id: req-ec205011-b6b1-41d0-b4ec-5e87f60c6aee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:02.278276+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-63c479fc-b516-48dd-86df-53b3217a7f07 +Openstack-Request-Id: req-ec205011-b6b1-41d0-b4ec-5e87f60c6aee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Smart NIC port must have port_id and hostname in local_link_connection\", \"debuginfo\": null}"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c2d607e7-10ed-4694-a4b4-1e0119b74af4 +Openstack-Request-Id: req-7608b574-4521-4624-90e1-c10f222c69b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/ports {'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': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 406 Not Acceptable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:13.789520+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": 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 +{node_uuid} +driver +fake-hardware +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_invalid_custom_fields +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_invalid_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 ... ok +ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors +ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden ... ok +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_3_project_admin_can_get_node +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_3_project_admin_can_get_node ... ok +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2691770d-e487-4787-8a66-5e9bde6a405b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -POST: /v1/ports {'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': 'Ethernet1/15'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 406 Not Acceptable +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1 {} +GOT:{'history': [{'uuid': '4757dfdf-0d7d-4dd5-9e81-f0f850689738', 'created_at': '2024-01-06T15:33:10.518976+00:00', 'severity': None, 'event': 'meow', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4757dfdf-0d7d-4dd5-9e81-f0f850689738', 'rel': 'self'}]}], 'next': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=None&fields=uuid,created_at,severity,event&limit=1&marker=4757dfdf-0d7d-4dd5-9e81-f0f850689738'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=4757dfdf-0d7d-4dd5-9e81-f0f850689738 {} +GOT:{'history': [{'uuid': 'fbb8180a-20fe-4b18-89f2-8718787c473c', 'created_at': '2024-01-06T15:33:10.520336+00:00', 'severity': None, 'event': 'purr', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/fbb8180a-20fe-4b18-89f2-8718787c473c', 'rel': 'self'}]}], 'next': "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree1',created_at=2024-01-06T15:33:10Z,event='meow',event_type=None,id=1,node_id=1,severity=None,updated_at=None,user='peaches',uuid=4757dfdf-0d7d-4dd5-9e81-f0f850689738)&fields=uuid,created_at,severity,event&limit=1&marker=fbb8180a-20fe-4b18-89f2-8718787c473c"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=fbb8180a-20fe-4b18-89f2-8718787c473c {} +GOT:{'history': [{'uuid': 'c021de5a-a6ba-4329-942e-7841e7793810', 'created_at': '2024-01-06T15:33:10.521408+00:00', 'severity': None, 'event': 'grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c021de5a-a6ba-4329-942e-7841e7793810', 'rel': 'self'}]}], 'next': "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree2',created_at=2024-01-06T15:33:10Z,event='purr',event_type=None,id=2,node_id=1,severity=None,updated_at=None,user='sage',uuid=fbb8180a-20fe-4b18-89f2-8718787c473c)&fields=uuid,created_at,severity,event&limit=1&marker=c021de5a-a6ba-4329-942e-7841e7793810"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/1b4ae8d6-7f68-4cb1-8404-bce02d50ad28 {} +GOT:{'uuid': '1b4ae8d6-7f68-4cb1-8404-bce02d50ad28', 'created_at': '2024-01-06T15:33:10.969001+00:00', 'severity': None, 'event_type': None, 'event': 'meow', 'conductor': 'cat-tree1', 'user': 'peaches', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/1b4ae8d6-7f68-4cb1-8404-bce02d50ad28', 'rel': 'self'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/52949728-59fc-4651-84c8-b0a16b469372 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7d149d08-da37-4780-9dcb-1a48447d7398 +Openstack-Request-Id: req-0600200f-c956-487d-b09a-ea5d7c216fbb X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'network_type': 'unmanaged'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +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}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/1234 {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-08d558ec-2d57-4957-bd4b-6fdae070e0b5 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/network_type', 'value': 'unmanaged', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-cfe6d524-e611-40e4-8f6d-48d71851abf6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:03.858459+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'network_type': 'unmanaged'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +X-Openstack-Ironic-Api-Version: 1.64 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:12.251820+00:00", "updated_at": "2024-01-06T15:33:12.295530+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/network_type', 'value': 'unmanaged', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-42bc11b9-60ea-47f6-840a-05117367279a +Openstack-Request-Id: req-ed980f35-5157-4526-8297-f39cc9db3216 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/ports {'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': 'physnet1', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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-af6e07fd-fc67-478f-8eb6-96b38b1a469c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:04.546086+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -POST: /v1/ports {'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': 'physnet1', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found ... ok -ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure -ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data_ipv6 -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data_ipv6 ... ok -ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions -ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided ... ok -ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env -ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env ... ok -ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions_bad -ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions_bad ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed ... ok -ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint -ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_grub_mac_path -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_grub_mac_path ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false ... ok -ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id -ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields ... ok -ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url -ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe ... ok -ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty -ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi ... ok -ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint -ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true ... ok +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'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-32c6f66b-0cfb-4f2a-b683-af5ac2664703 +Openstack-Request-Id: req-81dfd6c5-a25c-4dc5-ade6-f10d03739731 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:01.516528+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"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:13.075731+00:00", "updated_at": "2024-01-06T15:33:13.107647+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5e3efa9b-d71b-46b5-8379-d391eee57696 +Openstack-Request-Id: req-4fff2d45-e234-4816-bc29-27c952d2aedd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'add'}] +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\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-67dee439-0be5-46c4-bb80-ee993398fa3f +Openstack-Request-Id: req-953acff9-f6c3-4e7f-adda-a225a8098798 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:02.176776+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"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:13.837259+00:00", "updated_at": null, "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"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_mismatch_owner +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_mismatch_owner ... ok +DELETE: /v1/chassis/99a93c57-8324-490c-bac0-94f647b8a236 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-352b448c-c4f0-416b-8bbf-ce3b698dee37 +Openstack-Request-Id: req-0e2a5142-3779-4b88-ad95-2f78937f1bd2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 99a93c57-8324-490c-bac0-94f647b8a236 could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d13a501e-2350-4e2d-b5ff-ec9fd6a6c504 +Openstack-Request-Id: req-b8361e0b-9b7c-4706-93fa-c765ef3c8f86 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'boot_index' is a required property\", \"debuginfo\": null}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] -GOT:Response: 200 OK +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}"} +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6affe7ac-d804-4325-b261-0c3f96b11afa +Openstack-Request-Id: req-d594ee5b-125a-4368-ab63-80fc548ac001 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:03.157345+00:00", "updated_at": "2025-02-07T21:28:03.165157+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 [{'path': '/extra', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-21a49712-a97a-4b92-a7f1-e1ef50bb4490 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'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 {} +GOT:{'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'}]} +POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-b7a88e9e-f463-4817-a1dd-a931a3ad7dab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:03.157345+00:00", "updated_at": "2025-02-07T21:28:03.165157+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"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-230483f6-5a73-414b-8755-50f300e4e30b +X-Openstack-Ironic-Api-Version: 1.1 + +DELETE: /v1/drivers/fake-hardware-type/vendor_passthru/do_test +GOT:Response: 202 Accepted +Openstack-Request-Id: req-1a8bae89-101d-400c-b3cd-32109c8e9e4f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 + +POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ffbfb880-2326-403b-8681-7e62f34434ef +Openstack-Request-Id: req-dae232b5-34ce-44b7-9e36-cd473946086d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +GET: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {} +GOT:foo +POST: /v1/drivers/fake-hardware-type/vendor_passthru {'test_key': 'test_value'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-3f45587b-e1c6-492f-93e3-7df2f9fd5731 +Openstack-Request-Id: req-3679d3a3-cfdf-4b6b-ad38-35f3dc48a900 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Request-Id: req-aaa11fd1-e10b-4b22-abbc-d87b843385f2 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: method\", \"debuginfo\": null}"} +GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} +GOT:{'foo': 'bar'} +GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} +GOT:{'foo': 'bar'} +PUT: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-302840cf-a897-4d7a-b155-576eb89e89a6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume target with boot index '100' for the same node already exists.\", \"debuginfo\": null}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 0, 'op': 'replace'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 + +POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2e3c3017-0789-4e50-a001-df509ec71c79 +Openstack-Request-Id: req-dda56c7a-0ed9-402d-b779-49cca76c8bc6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_001_values -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_001_values ... skipped 'These are fake reference values for YAML templating' -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:27:59.972855+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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=True&fields=name {} +X-Openstack-Ironic-Api-Version: 1.1 +{"return_key": "return_value"} +GET: /v1/drivers {} +GOT:{'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 {} +GOT:{'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 {} +GOT:{'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 {} +GOT:{'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 {} +GOT:{'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?fields=name,hosts {} +GOT:{'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?fields=name,hosts&detail=false {} +GOT:{'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?detail=true&fields=name,hosts {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-05e45009-35a5-418d-818f-a5a173d3cf5c +Openstack-Request-Id: req-3abdac4c-755d-4525-883f-a0de44368a91 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 +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}"} -GET: /v1/nodes?detail=False&fields=name {} -GOT:{'nodes': [{'name': None, '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=True {} +GET: /v1/drivers?fields=name,invalid {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-36b2cbaf-beb6-4923-a732-d62a99706d19 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/nodes/detail?associated=true {} -GOT:{'nodes': [{'uuid': 'aeaba67f-89f9-436e-aa06-3d0258f34cef', 'created_at': '2025-02-07T21:28:01.306823+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': 'e8ef399d-1c15-4bfc-92df-07c28e710f3e', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/aeaba67f-89f9-436e-aa06-3d0258f34cef', 'rel': 'self'}, {'href': 'http://localhost/nodes/aeaba67f-89f9-436e-aa06-3d0258f34cef', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/aeaba67f-89f9-436e-aa06-3d0258f34cef/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/aeaba67f-89f9-436e-aa06-3d0258f34cef/ports', 'rel': 'bookmark'}]}, {'uuid': '562af76c-365c-4db9-a2f6-ae1059ff5b62', 'created_at': '2025-02-07T21:28:01.311609+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': '42273dab-396f-4797-8334-b0ad7c87fe73', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/562af76c-365c-4db9-a2f6-ae1059ff5b62', 'rel': 'self'}, {'href': 'http://localhost/nodes/562af76c-365c-4db9-a2f6-ae1059ff5b62', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/562af76c-365c-4db9-a2f6-ae1059ff5b62/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/562af76c-365c-4db9-a2f6-ae1059ff5b62/ports', 'rel': 'bookmark'}]}, {'uuid': 'f468aef5-be79-4da4-8ae4-2b4ccbed2f61', 'created_at': '2025-02-07T21:28:01.316430+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': '3bf477e4-1dd1-478e-b2a5-ef0704736ca1', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/f468aef5-be79-4da4-8ae4-2b4ccbed2f61', 'rel': 'self'}, {'href': 'http://localhost/nodes/f468aef5-be79-4da4-8ae4-2b4ccbed2f61', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/f468aef5-be79-4da4-8ae4-2b4ccbed2f61/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f468aef5-be79-4da4-8ae4-2b4ccbed2f61/ports', 'rel': 'bookmark'}]}, {'uuid': '283396b5-6697-4981-a813-8a91278eeb32', 'created_at': '2025-02-07T21:28:01.321884+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': 'b05ab5fc-9a57-4e06-94d8-29cd21170dc1', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/283396b5-6697-4981-a813-8a91278eeb32', 'rel': 'self'}, {'href': 'http://localhost/nodes/283396b5-6697-4981-a813-8a91278eeb32', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/283396b5-6697-4981-a813-8a91278eeb32/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/283396b5-6697-4981-a813-8a91278eeb32/ports', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?instance_uuid=c802c7ab-444c-4bfa-9902-657a5d1b36e3 {} -GOT:{'nodes': [{'uuid': 'e4079ca9-1605-4590-a4fd-359942acfca7', 'created_at': '2025-02-07T21:28:01.710341+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': 'c802c7ab-444c-4bfa-9902-657a5d1b36e3', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/e4079ca9-1605-4590-a4fd-359942acfca7', 'rel': 'self'}, {'href': 'http://localhost/nodes/e4079ca9-1605-4590-a4fd-359942acfca7', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/e4079ca9-1605-4590-a4fd-359942acfca7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e4079ca9-1605-4590-a4fd-359942acfca7/ports', 'rel': 'bookmark'}]}]} -GET: /v1/nodes {} -GOT:{'nodes': []} -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 {} -GOT:{'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, '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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=boot_interface,console_interface,deploy_interface,inspect_interface,management_interface,power_interface,raid_interface,vendor_interface {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-072c0ba9-344b-42e7-b2c9-9085dce14706 +Openstack-Request-Id: req-2251bb25-a428-487f-895f-85703bfd9224 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=automated_clean {} -GOT:{'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'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} -GOT:{'boot_device': 'pxe', 'persistent': True} -GET: /v1/nodes/spam/management/boot_device {} -GOT:{'boot_device': 'pxe', 'persistent': True} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +X-Openstack-Ironic-Api-Version: 1.77 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"invalid\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/drivers?detail=True {} +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name ... ok +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-e7d32987-9a3d-4760-bd48-37817cba6a8e +Openstack-Request-Id: req-e1b3d5c6-bb94-4655-a120-165d80ff1a78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes?fields=uuid,instance_info {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_fields_for_nova -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_fields_for_nova ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"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}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-eab15863-29dc-4dc3-b88b-5c95d790618f +Openstack-Request-Id: req-ce29c27d-3493-4ccc-a070-ac7aa2c29c18 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed' is too long\", \"debuginfo\": null}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {'foo': 123}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +{"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}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-cb71ed7a-bdb9-4d2f-abc0-599653392759 +Openstack-Request-Id: req-9896b67c-f8af-45b3-8c1d-3b8e44ffae46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:04.963629+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", "cpus": "8", "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"}]} +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:14.205307+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": "project", "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", "cpus": "8", "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, "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:04.963629+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {'foo': 123}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_012_nodes_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_012_nodes_detail_get_member ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields ... ok +ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 +ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_owner +ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_owner ... ok +ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state +ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version ... ok +GET: /v1/volume/targets?detail=True {} +GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:33:08.781233+00:00', 'updated_at': None, '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?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-081ca193-d243-43be-8504-05e181075281 +Openstack-Request-Id: req-9a79ddce-bbeb-43c3-bd72-0b33348db8d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"boom\", \"debuginfo\": null}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'invalid%id^'} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True&fields=boot_index,extra {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f2004d12-0f28-4305-9809-40e4d6c9e600 +Openstack-Request-Id: req-96f2100f-6053-49a8-8858-1fcf95c68e52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'bad_id': '81482149-4502-444d-86b0-800d2d770fb7'} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} +GET: /v1/volume/targets?detail=True&node=test-node {} +GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:33:10.010759+00:00', 'updated_at': None, '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?detail=False {} +GOT:{'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'}]} +GET: /v1/volume/targets?detail=True {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/volume/targets/detail {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e7893f4c-3478-4e8c-81d3-b2602adf2b7f +Openstack-Request-Id: req-31aec1de-08af-441d-86d6-056e116b8243 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': '5e59f268-1e33-44ff-9179-e7cc2bca3e74'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for target_uuid: detail\", \"debuginfo\": null}"} +GET: /v1/volume/targets {} +GOT:{'targets': []} +GET: /v1/volume/targets?node=test-node {} +GOT:{'targets': [{'uuid': '328467a5-851d-4e8c-832d-876879181b30', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/328467a5-851d-4e8c-832d-876879181b30', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/328467a5-851d-4e8c-832d-876879181b30', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '07166f1b-1bcc-4dd8-9aaf-fbf3b34af6dc', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/07166f1b-1bcc-4dd8-9aaf-fbf3b34af6dc', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/07166f1b-1bcc-4dd8-9aaf-fbf3b34af6dc', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '1d62766b-29e5-49dc-a187-2e2cb43329d6', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/1d62766b-29e5-49dc-a187-2e2cb43329d6', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1d62766b-29e5-49dc-a187-2e2cb43329d6', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/volume/targets?fields=uuid,extra {} +GOT:{'targets': [{'uuid': 'da02ba12-ffe2-4469-83bd-6a3c5bc23de1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/da02ba12-ffe2-4469-83bd-6a3c5bc23de1', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/da02ba12-ffe2-4469-83bd-6a3c5bc23de1', 'rel': 'bookmark'}]}, {'uuid': '3b6c066c-36cd-4da6-bf4f-2008b42929fe', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/3b6c066c-36cd-4da6-bf4f-2008b42929fe', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/3b6c066c-36cd-4da6-bf4f-2008b42929fe', 'rel': 'bookmark'}]}, {'uuid': '2abebcc1-3682-4ab2-9b6a-e4f0ba3189eb', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/2abebcc1-3682-4ab2-9b6a-e4f0ba3189eb', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/2abebcc1-3682-4ab2-9b6a-e4f0ba3189eb', 'rel': 'bookmark'}]}]} +GET: /v1/volume/targets?fields=boot_index&limit=2 {} +GOT:{'targets': [{'boot_index': 0, 'links': [{'href': 'http://localhost/v1/volume/targets/13256bdd-6f25-4f09-b464-2117bf81dc38', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/13256bdd-6f25-4f09-b464-2117bf81dc38', 'rel': 'bookmark'}]}, {'boot_index': 1, 'links': [{'href': 'http://localhost/v1/volume/targets/faa32d52-163b-4620-ba11-827a498f81f8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/faa32d52-163b-4620-ba11-827a498f81f8', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=faa32d52-163b-4620-ba11-827a498f81f8'} +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-524032b2-3604-4699-826e-f79545db2ef4 +Openstack-Request-Id: req-d7d42341-a0d3-4950-bbf5-b91ded783d42 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes/doesntexist/vifs {'id': 'e3347d0c-53a6-4ea8-8e00-736f37a1ac5b'} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:33:13.741022+00:00', 'updated_at': None, '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?fields=boot_index,extra {} +GOT:{'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'}]} +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bfbe04a8-9db7-4e91-943a-110746d24113 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'f71d68df-3a1c-4cdf-8f0a-70574aa0f058', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/volume/targets/d10f95f4-e701-4059-9df1-d0ab1563e1eb {} +GOT:{'uuid': 'd10f95f4-e701-4059-9df1-d0ab1563e1eb', 'created_at': '2024-01-06T15:33:14.903056+00:00', 'updated_at': None, 'boot_index': 0, 'extra': {}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/d10f95f4-e701-4059-9df1-d0ab1563e1eb', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d10f95f4-e701-4059-9df1-d0ab1563e1eb', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/volume/targets/d10f95f4-e701-4059-9df1-d0ab1563e1eb {} +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_with_json +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee_old_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee_old_api_version ... ok +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_4_project_member_cannot_get_node +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_4_project_member_cannot_get_node ... ok +ironic.tests.unit.common.test_fsm.FSMTest.test_initialize +ironic.tests.unit.common.test_fsm.FSMTest.test_initialize ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found ... ok GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-de67d82f-ff39-415e-9687-cba5cc25dbf0 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': '543d1bc6-913d-4e5f-a4c1-5adb1bc867f3', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-655bfc6b-fe0b-4ca7-aab4-90a15f323e16 +Openstack-Request-Id: req-658d67f4-6502-4f7b-af96-2bc13d5ffc00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 - -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/1c80cb54-108d-4360-aae6-74781fb1a0b9 +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}"} +PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} GOT:Response: 204 No Content -Openstack-Request-Id: req-9a4b7cc8-5be3-4959-bbcc-c8f6f921ccb5 +Openstack-Request-Id: req-8ee9c2fd-d66e-4fbb-9673-b3453b02c109 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 +X-Openstack-Ironic-Api-Version: 1.37 -DELETE: /v1/nodes/node-39/vifs/ce9613e0-0130-4f7d-ad4e-caaa160b037f +PUT: /v1/nodes/node-39/traits {'traits': []} GOT:Response: 204 No Content -Openstack-Request-Id: req-8fbaa08f-a6f1-43f3-b386-50f60ee10548 +Openstack-Request-Id: req-1a20b3c9-9529-4056-8f22-e65f49170c25 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 +X-Openstack-Ironic-Api-Version: 1.37 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/3c1708fa-f44f-47ea-9863-ac5d1fc12dbd -GOT:Response: 409 Conflict +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': []} +GOT:Response: 405 Method Not Allowed +Allow: DELETE, GET, PATCH, POST Content-Type: application/json -Openstack-Request-Id: req-8ea47466-a4a4-47f0-8ecc-e35cf2a88d39 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -DELETE: /v1/nodes/doesntexist/vifs/bf97c13c-8a84-4878-a385-82c656972b5e -GOT:Response: 404 Not Found +{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} +PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'BAD_TRAIT']} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6e15d547-d714-4392-bef0-d6f93f1797b3 +Openstack-Request-Id: req-8de90509-1697-4715-a24e-b4349bcadb9c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} -GOT:{'vifs': []} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} -GOT:{'bios': [{'created_at': '2025-02-07T21:28:03.646257+00:00', 'updated_at': None, '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'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?detail=False {} -GOT:{'bios': [{'created_at': '2025-02-07T21:28:03.975814+00:00', 'updated_at': None, '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'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?detail=True {} +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}"} +PUT: /v1/nodes/node-39/traits {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-81eec1f0-ee1f-45f6-b37d-9670257894d3 +Openstack-Request-Id: req-062b3735-5494-4971-9766-3447dfb556da X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?detail=True {} -GOT:{'bios': [{'created_at': '2025-02-07T21:28:04.924119+00:00', 'updated_at': None, 'name': 'virtualization', 'value': 'on', 'attribute_type': 'Enumeration', 'allowable_values': ['on', 'off'], 'lower_bound': None, 'max_length': None, 'min_length': None, 'read_only': False, 'reset_required': True, 'unique': False, 'upper_bound': None, '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'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?detail=True?fields=name,read_only {} +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}"} +PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT']} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5ca08a8d-6e1d-44a6-a36e-1621892a8de8 +Openstack-Request-Id: req-f19bd210-1be9-45f3-8218-415115f1b370 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?fields=name,read_only {} -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields_old_version -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields_old_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_no_registry -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_no_registry ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_bad_invalid_agent_status -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_bad_invalid_agent_status ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_different_callback_url -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_different_callback_url ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_node_not_found -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_node_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_status_and_status -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_status_and_status ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_002_nodes_post_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_002_nodes_post_admin ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_token -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_token ... ok -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2025-02-07T21:28:02.877607+00:00', 'updated_at': None, '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'}]]} -POST: /v1/chassis {'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-55651fd7-3bef-41f8-9e0d-a387aef712db +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT' is too long\", \"debuginfo\": null}"} +PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} +GOT:Response: 204 No Content +Openstack-Request-Id: req-fb509520-ddb7-4e1e-ad90-b013e388561d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} -POST: /v1/chassis {'extra': {}, 'description': 'data-center-1-chassis'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.37 + +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'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 -Location: http://localhost/v1/chassis/5f109fcc-507e-481b-ab62-da443af0e70b -Openstack-Request-Id: req-3dc8a233-ac39-4be6-9b77-d07c0d9c8ce0 +Openstack-Request-Id: req-cda7056e-3e64-4102-ad99-730c3c8d3452 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "5f109fcc-507e-481b-ab62-da443af0e70b", "created_at": "2025-02-07T21:28:03.646243+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/5f109fcc-507e-481b-ab62-da443af0e70b", "rel": "self"}, {"href": "http://localhost/chassis/5f109fcc-507e-481b-ab62-da443af0e70b", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/5f109fcc-507e-481b-ab62-da443af0e70b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/5f109fcc-507e-481b-ab62-da443af0e70b/nodes", "rel": "bookmark"}]]} -GET: /v1/chassis {} -GOT:{'chassis': [{'uuid': '5f109fcc-507e-481b-ab62-da443af0e70b', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/5f109fcc-507e-481b-ab62-da443af0e70b', 'rel': 'self'}, {'href': 'http://localhost/chassis/5f109fcc-507e-481b-ab62-da443af0e70b', 'rel': 'bookmark'}]}]} -POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 1334} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"} +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url2'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5033a214-ba3a-4311-a620-d04f78400b6f +Openstack-Request-Id: req-ff8029a7-61dd-4057-a0ba-b912f0bbf516 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"} +POST: /v1/heartbeat/6518951c-0e91-4576-b3e1-03e0e73c128f {'callback_url': 'url'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3d3b335a-f708-4754-a4dd-c9773fcd9992 +Openstack-Request-Id: req-377e0d28-2c6e-49d4-9fa9-5e4c5c7ba258 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/chassis {'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-6df1793e-1fae-49f1-8c4a-0597278ee13e +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 6518951c-0e91-4576-b3e1-03e0e73c128f could not be found.\", \"debuginfo\": null}"} +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'x'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-244c8254-21b4-4901-bfcb-0d5ab35a4934 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:28:04.563397+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 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2025-02-07T21:28:04.563397+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, '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'}]]} -POST: /v1/chassis/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-c0cbb77a-39bd-4e63-8ca8-c1f0dbfde6ff +X-Openstack-Ironic-Api-Version: 1.80 + +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'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-b31e9d51-2fad-43a6-a463-f3b47e979ad0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/deploy_templates/0948ce09-7204-41d5-91d3-42e27a0ae3ff [{'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-cc2163f9-33b8-4bd4-9dc9-285621e47930 +X-Openstack-Ironic-Api-Version: 1.80 + +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'abcdef1'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-a4ee68d1-5bb3-4ac6-bfc7-4a04af0818f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "0948ce09-7204-41d5-91d3-42e27a0ae3ff", "created_at": "2025-02-07T21:28:05.273375+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0948ce09-7204-41d5-91d3-42e27a0ae3ff", "rel": "self"}, {"href": "http://localhost/deploy_templates/0948ce09-7204-41d5-91d3-42e27a0ae3ff", "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}]} -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_verify_ca -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_verify_ca ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info ... ok -GOT:{'deploy_templates': [{'uuid': '6f9a9db2-89bf-4e0a-8eba-6134bd13cecb', 'links': [{'href': 'http://localhost/v1/deploy_templates/6f9a9db2-89bf-4e0a-8eba-6134bd13cecb', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/6f9a9db2-89bf-4e0a-8eba-6134bd13cecb', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '4791795e-ec03-4f0e-acf6-36dbae4b7da2', 'links': [{'href': 'http://localhost/v1/deploy_templates/4791795e-ec03-4f0e-acf6-36dbae4b7da2', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4791795e-ec03-4f0e-acf6-36dbae4b7da2', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '8b680da4-bc85-40a7-9319-c4c927e07bf6', 'links': [{'href': 'http://localhost/v1/deploy_templates/8b680da4-bc85-40a7-9319-c4c927e07bf6', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/8b680da4-bc85-40a7-9319-c4c927e07bf6', '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=8b680da4-bc85-40a7-9319-c4c927e07bf6'} -GET: /v1/deploy_templates {} -GOT:{'deploy_templates': [{'uuid': '0f024df1-d6b2-496d-9cc0-d446c58a6c22', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/0f024df1-d6b2-496d-9cc0-d446c58a6c22', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/0f024df1-d6b2-496d-9cc0-d446c58a6c22', 'rel': 'bookmark'}]}, {'uuid': 'bc763df0-880e-4d24-84ba-8d2a15bb0f98', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/bc763df0-880e-4d24-84ba-8d2a15bb0f98', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/bc763df0-880e-4d24-84ba-8d2a15bb0f98', 'rel': 'bookmark'}]}, {'uuid': '09161cc4-4fda-465d-954a-8c31341508da', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/09161cc4-4fda-465d-954a-8c31341508da', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/09161cc4-4fda-465d-954a-8c31341508da', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=09161cc4-4fda-465d-954a-8c31341508da'} -GET: /v1/deploy_templates?detail=True {} -GOT:{'deploy_templates': [{'uuid': '1bdccd60-96f9-490d-b5f7-e3ef3a3d605c', 'created_at': '2025-02-07T21:28:03.216688+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/1bdccd60-96f9-490d-b5f7-e3ef3a3d605c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1bdccd60-96f9-490d-b5f7-e3ef3a3d605c', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}]} -GET: /v1/deploy_templates {} -GOT:{'deploy_templates': [{'uuid': '06a9e482-b4e8-4d85-a91c-d858ea7c2fd1', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/06a9e482-b4e8-4d85-a91c-d858ea7c2fd1', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/06a9e482-b4e8-4d85-a91c-d858ea7c2fd1', 'rel': 'bookmark'}]}]} -GET: /v1/deploy_templates?detail=False {} -GOT:{'deploy_templates': [{'uuid': '06a9e482-b4e8-4d85-a91c-d858ea7c2fd1', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/06a9e482-b4e8-4d85-a91c-d858ea7c2fd1', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/06a9e482-b4e8-4d85-a91c-d858ea7c2fd1', 'rel': 'bookmark'}]}]} -GET: /v1/deploy_templates?sort_key=name&detail=True {} -GOT:{'deploy_templates': [{'uuid': 'ed99ee4c-3b74-42a7-8410-2c5b998606f7', 'created_at': '2025-02-07T21:28:03.786662+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/ed99ee4c-3b74-42a7-8410-2c5b998606f7', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/ed99ee4c-3b74-42a7-8410-2c5b998606f7', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': 'bbfd09ef-d98c-44dd-abd2-5d7e6780e066', 'created_at': '2025-02-07T21:28:03.782662+00:00', 'updated_at': None, 'name': 'CUSTOM_DT2', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/bbfd09ef-d98c-44dd-abd2-5d7e6780e066', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/bbfd09ef-d98c-44dd-abd2-5d7e6780e066', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '7de7794b-09e2-4505-a64f-8e198e1c3c52', 'created_at': '2025-02-07T21:28:03.779810+00:00', 'updated_at': None, 'name': 'CUSTOM_DT3', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/7de7794b-09e2-4505-a64f-8e198e1c3c52', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7de7794b-09e2-4505-a64f-8e198e1c3c52', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}]} -GET: /v1/deploy_templates?detail=True&fields=name {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-cf17aa24-a59e-45e4-9ea5-6c1a11995913 + +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'meow', 'agent_verify_ca': 'abcdef1'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-98e6febd-a3e4-4a0b-a923-ec96be24b402 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} -GET: /v1/deploy_templates?detail=False&fields=steps {} -GOT:{'deploy_templates': [{'links': [{'href': 'http://localhost/v1/deploy_templates/19d1b885-7112-4e09-9fed-8985edd7d712', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/19d1b885-7112-4e09-9fed-8985edd7d712', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}]} -GET: /v1/deploy_templates {} -GOT:{'deploy_templates': []} -GET: /v1/deploy_templates {} -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\"}"} -GET: /v1/deploy_templates?fields=uuid,steps {} -GOT:{'deploy_templates': [{'uuid': '918c999b-be5c-4c9d-a74b-44fcf2e54a0f', 'links': [{'href': 'http://localhost/v1/deploy_templates/918c999b-be5c-4c9d-a74b-44fcf2e54a0f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/918c999b-be5c-4c9d-a74b-44fcf2e54a0f', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '5340150a-517d-462d-b6c3-5d575e0304e7', 'links': [{'href': 'http://localhost/v1/deploy_templates/5340150a-517d-462d-b6c3-5d575e0304e7', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/5340150a-517d-462d-b6c3-5d575e0304e7', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': 'f22a40b4-7cf1-473d-9f0d-03c27ed48a71', 'links': [{'href': 'http://localhost/v1/deploy_templates/f22a40b4-7cf1-473d-9f0d-03c27ed48a71', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/f22a40b4-7cf1-473d-9f0d-03c27ed48a71', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}]} -GET: /v1/deploy_templates?fields=name&limit=2 {} -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_003_nodes_post_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_003_nodes_post_member ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_iface_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_iface_not_supported ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_version -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_version ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_versioning -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_versioning ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node -ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_no_ipaddress -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_no_ipaddress ... ok -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name ... ok -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-298d0c34-9aa5-4edd-a030-443a68e0d8d4 + +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1', 'agent_token': 'meow'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-49e8fc73-287f-4777-ab82-3aebf665d33e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.38 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:02.680061+00:00", "updated_at": "2025-02-07T21:28:02.736556+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Request-Id: req-b62badd3-b93d-4b7f-af83-68d8075ee611 +X-Openstack-Ironic-Api-Version: 1.80 + +POST: /v1/heartbeat/test.1 {'callback_url': 'url', 'agent_token': 'token'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-8ec4ef73-7485-4ad9-930f-953fd199ef97 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/ports/3d432129-53c8-497f-9de3-7834de519878 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-08e9f047-018b-439f-a1bf-97a59f4fdf6b +X-Openstack-Ironic-Api-Version: 1.80 + +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {'callback_url': 'url', 'agent_token': 'maybe some magic'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-54ea3ee2-52b6-4151-b8df-5eda63c53a86 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 3d432129-53c8-497f-9de3-7834de519878 could not be found.\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.80 + +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'meow', 'agent_verify_ca': 'abcd'} +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_013_nodes_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_013_nodes_detail_get_observer ... ok +ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable +ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable ... ok +GOT:{'uuid': 'ffe7f5f7-1724-4c1d-81fd-27a80cf621f0', 'created_at': '2024-01-06T15:33:12.673171+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://foo/v1/nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0', 'rel': 'self'}, {'href': 'http://foo/nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0/ports', 'rel': 'bookmark'}]} +GET: /v1/nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0 {} +GOT:{'uuid': 'ffe7f5f7-1724-4c1d-81fd-27a80cf621f0', 'created_at': '2024-01-06T15:33:12.673171+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://foo/v1/nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0', 'rel': 'self'}, {'href': 'http://foo/nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0/ports', 'rel': 'bookmark'}]} +GET: /nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0 {} +GOT:{'uuid': 'ffe7f5f7-1724-4c1d-81fd-27a80cf621f0', 'created_at': '2024-01-06T15:33:12.673171+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://foo/v1/nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0', 'rel': 'self'}, {'href': 'http://foo/nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/ffe7f5f7-1724-4c1d-81fd-27a80cf621f0/ports', 'rel': 'bookmark'}]} +GET: /v1/nodes?maintenance=true {} +GOT:{'nodes': [{'uuid': 'a4424f62-b04d-4ba2-bfad-a44c87587bb5', 'instance_uuid': None, 'maintenance': True, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/a4424f62-b04d-4ba2-bfad-a44c87587bb5', 'rel': 'self'}, {'href': 'http://localhost/nodes/a4424f62-b04d-4ba2-bfad-a44c87587bb5', 'rel': 'bookmark'}]}, {'uuid': '05151384-6ca0-45b0-b996-46a033cf3c43', 'instance_uuid': None, 'maintenance': True, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/05151384-6ca0-45b0-b996-46a033cf3c43', 'rel': 'self'}, {'href': 'http://localhost/nodes/05151384-6ca0-45b0-b996-46a033cf3c43', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?maintenance=false {} +GOT:{'nodes': [{'uuid': '876e3b63-6815-4588-9296-36c079ef3b7a', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/876e3b63-6815-4588-9296-36c079ef3b7a', 'rel': 'self'}, {'href': 'http://localhost/nodes/876e3b63-6815-4588-9296-36c079ef3b7a', 'rel': 'bookmark'}]}, {'uuid': 'f1b61859-e3eb-43d1-afad-fa4a2ed308a5', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/f1b61859-e3eb-43d1-afad-fa4a2ed308a5', 'rel': 'self'}, {'href': 'http://localhost/nodes/f1b61859-e3eb-43d1-afad-fa4a2ed308a5', 'rel': 'bookmark'}]}, {'uuid': 'f54daa9d-445e-473c-a80c-df295556f44f', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/f54daa9d-445e-473c-a80c-df295556f44f', 'rel': 'self'}, {'href': 'http://localhost/nodes/f54daa9d-445e-473c-a80c-df295556f44f', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=true&maintenance=false {} +GOT:{'nodes': [{'uuid': 'c3888e84-57f8-4be2-925d-d86bf86790e8', 'instance_uuid': 'e8b8d640-c3e7-49a0-bcf9-1fabf232b5db', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/c3888e84-57f8-4be2-925d-d86bf86790e8', 'rel': 'self'}, {'href': 'http://localhost/nodes/c3888e84-57f8-4be2-925d-d86bf86790e8', 'rel': 'bookmark'}]}, {'uuid': 'a3f6738d-70ef-4dd5-86b2-2872534cb565', 'instance_uuid': '3b374982-341b-4f78-84d4-bc8b88bf9845', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/a3f6738d-70ef-4dd5-86b2-2872534cb565', 'rel': 'self'}, {'href': 'http://localhost/nodes/a3f6738d-70ef-4dd5-86b2-2872534cb565', 'rel': 'bookmark'}]}, {'uuid': '59232fb5-5594-4bc5-b14e-f6d5c0824c6a', 'instance_uuid': 'aed2b31a-7271-42d6-8750-98cc1c866342', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/59232fb5-5594-4bc5-b14e-f6d5c0824c6a', 'rel': 'self'}, {'href': 'http://localhost/nodes/59232fb5-5594-4bc5-b14e-f6d5c0824c6a', 'rel': 'bookmark'}]}, {'uuid': '86d381bb-8d01-46a4-8b25-eee2dabc6103', 'instance_uuid': 'bbbe757e-58b7-4ef2-acd8-bad97bfb5e56', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/86d381bb-8d01-46a4-8b25-eee2dabc6103', 'rel': 'self'}, {'href': 'http://localhost/nodes/86d381bb-8d01-46a4-8b25-eee2dabc6103', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=true&maintenance=true {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': 'ff9388bb-aaff-4ac9-a296-545a41c71e29', 'maintenance': True, 'power_state': None, 'provision_state': None, '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 {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': 'ff9388bb-aaff-4ac9-a296-545a41c71e29', 'maintenance': True, 'power_state': None, 'provision_state': None, '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=blah {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e1e73696-9921-459e-b593-0da60dc8c124 +Openstack-Request-Id: req-4d8f01b5-e869-42c9-85de-0d21cad68071 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:03.600443+00:00", "updated_at": "2025-02-07T21:28:03.633246+00:00", "address": "aa:bb:cc:dd:ee:ff", "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"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}] -GOT:Response: 200 OK +{"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}"} +GET: /v1/nodes {} +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many ... ok +GOT:{'uuid': 'd341bf42-2565-4046-80c4-ece04e62b207', 'created_at': '2024-01-06T15:33:12.713533+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/d341bf42-2565-4046-80c4-ece04e62b207', 'rel': 'self'}, {'href': 'http://localhost/allocations/d341bf42-2565-4046-80c4-ece04e62b207', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'eabf975d-b07d-487b-8361-135dbc40be06', 'owner': None} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-85ba36bc-97ae-43ae-b347-e7a92fbab804 +Openstack-Request-Id: req-a7ec4282-53c0-4d47-ba49-cb56ee1ccfd8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.19 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:03.903762+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.60 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'bb81a520-9dc6-4714-9b2a-f456973e576e', 'owner': None} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-c052d4a8-669b-4000-b321-347897aed15e +Location: http://localhost/v1/allocations/bb81a520-9dc6-4714-9b2a-f456973e576e +Openstack-Request-Id: req-ba506982-2a46-45d9-bdf1-7b234e4ddf70 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.60 +{"uuid": "bb81a520-9dc6-4714-9b2a-f456973e576e", "created_at": "2024-01-06T15:33:13.542225+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/bb81a520-9dc6-4714-9b2a-f456973e576e", "rel": "self"}, {"href": "http://localhost/allocations/bb81a520-9dc6-4714-9b2a-f456973e576e", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/bb81a520-9dc6-4714-9b2a-f456973e576e {} +GOT:{'uuid': 'bb81a520-9dc6-4714-9b2a-f456973e576e', 'created_at': '2024-01-06T15:33:13.542225+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/bb81a520-9dc6-4714-9b2a-f456973e576e', 'rel': 'self'}, {'href': 'http://localhost/allocations/bb81a520-9dc6-4714-9b2a-f456973e576e', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '368fa34e-5896-4f05-9c88-27fe27316f88'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-6200c570-e39a-4fbf-9d76-943a13a52557 +Location: http://localhost/v1/allocations/368fa34e-5896-4f05-9c88-27fe27316f88 +Openstack-Request-Id: req-3d52994b-a3a5-454b-8196-fc450eca25b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.59 +{"uuid": "368fa34e-5896-4f05-9c88-27fe27316f88", "created_at": "2024-01-06T15:33:13.865902+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/368fa34e-5896-4f05-9c88-27fe27316f88", "rel": "self"}, {"href": "http://localhost/allocations/368fa34e-5896-4f05-9c88-27fe27316f88", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/368fa34e-5896-4f05-9c88-27fe27316f88 {} +GOT:{'uuid': '368fa34e-5896-4f05-9c88-27fe27316f88', 'created_at': '2024-01-06T15:33:13.865902+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/368fa34e-5896-4f05-9c88-27fe27316f88', 'rel': 'self'}, {'href': 'http://localhost/allocations/368fa34e-5896-4f05-9c88-27fe27316f88', 'rel': 'bookmark'}], 'node_uuid': None} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '2c90d841-dbc4-4850-a216-7c6e08c236dc', 'owner': '54321'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6200c570-e39a-4fbf-9d76-943a13a52557 +Openstack-Request-Id: req-0037a70f-bc18-430c-a7da-01addc169a77 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.60 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} +POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '38a28589-478b-40bd-a5ba-103c52659d52', 'owner': '12345'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-3a4bef31-d90f-4c00-8e3f-bf3ba70ba5c5 +Location: http://localhost/v1/allocations/38a28589-478b-40bd-a5ba-103c52659d52 +Openstack-Request-Id: req-77989044-3b5b-4b7c-afa6-3050fcd42ef5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:05.825931+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": 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 -{node_uuid} -driver -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_3_project_admin_can_get_node -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_3_project_admin_can_get_node ... ok -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_4_project_member_cannot_get_node -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_4_project_member_cannot_get_node ... ok -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_5_public_api -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_5_public_api ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_lessee_field -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_lessee_field ... ok -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists ... ok -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_with_json -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_with_json ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different ... ok -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name ... ok -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:01.801436+00:00', 'updated_at': None, '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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/ports?detail=True {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:02.152758+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}]} -GET: /v1/ports {} -GOT:{'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 {} -GOT:{'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?sort_key=pxe_enabled {} -GOT:{'ports': [{'uuid': 'd1babcf3-1ec0-4a5b-a8af-4b962ac57116', 'created_at': '2025-02-07T21:28:02.817712+00:00', 'updated_at': None, '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': None, 'pxe_enabled': False, 'links': [{'href': 'http://localhost/v1/ports/d1babcf3-1ec0-4a5b-a8af-4b962ac57116', 'rel': 'self'}, {'href': 'http://localhost/ports/d1babcf3-1ec0-4a5b-a8af-4b962ac57116', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None}, {'uuid': 'a0290b25-e527-4b75-977a-fd742db17d83', 'created_at': '2025-02-07T21:28:02.819256+00:00', 'updated_at': None, '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': None, 'pxe_enabled': True, 'links': [{'href': 'http://localhost/v1/ports/a0290b25-e527-4b75-977a-fd742db17d83', 'rel': 'self'}, {'href': 'http://localhost/ports/a0290b25-e527-4b75-977a-fd742db17d83', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None}]} -GET: /v1/ports/detail?sort_key=pxe_enabled {} +X-Openstack-Ironic-Api-Version: 1.60 +{"uuid": "38a28589-478b-40bd-a5ba-103c52659d52", "created_at": "2024-01-06T15:33:14.638218+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/38a28589-478b-40bd-a5ba-103c52659d52", "rel": "self"}, {"href": "http://localhost/allocations/38a28589-478b-40bd-a5ba-103c52659d52", "rel": "bookmark"}], "node_uuid": null} +GET: /v1/allocations/38a28589-478b-40bd-a5ba-103c52659d52 {} +GOT:{'uuid': '38a28589-478b-40bd-a5ba-103c52659d52', 'created_at': '2024-01-06T15:33:14.638218+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/38a28589-478b-40bd-a5ba-103c52659d52', 'rel': 'self'}, {'href': 'http://localhost/allocations/38a28589-478b-40bd-a5ba-103c52659d52', 'rel': 'bookmark'}], 'node_uuid': None} +GET: /v1/chassis/?limit=3 {} +GOT:{'chassis': [{'uuid': '16c4c6e4-db02-431a-b7c3-fbf943a3da8f', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/16c4c6e4-db02-431a-b7c3-fbf943a3da8f', 'rel': 'self'}, {'href': 'http://localhost/chassis/16c4c6e4-db02-431a-b7c3-fbf943a3da8f', 'rel': 'bookmark'}]}, {'uuid': 'c4368aa4-bdc0-4f2b-a7c1-b4914e647c81', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/c4368aa4-bdc0-4f2b-a7c1-b4914e647c81', 'rel': 'self'}, {'href': 'http://localhost/chassis/c4368aa4-bdc0-4f2b-a7c1-b4914e647c81', 'rel': 'bookmark'}]}, {'uuid': 'c2bbfb22-a609-4cef-8ce5-f219f7834497', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/c2bbfb22-a609-4cef-8ce5-f219f7834497', 'rel': 'self'}, {'href': 'http://localhost/chassis/c2bbfb22-a609-4cef-8ce5-f219f7834497', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=c2bbfb22-a609-4cef-8ce5-f219f7834497'} +GET: /v1/chassis?fields=extra,uuid {} +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_verify_ca_error +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_verify_ca_error ... ok +GOT:{'allocations': [{'uuid': '4a6d4421-25c7-45cc-b23e-d8cc0a1dbbfd', 'created_at': '2024-01-06T15:33:10.840678+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation0', 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/4a6d4421-25c7-45cc-b23e-d8cc0a1dbbfd', 'rel': 'self'}, {'href': 'http://localhost/allocations/4a6d4421-25c7-45cc-b23e-d8cc0a1dbbfd', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '1b72adfb-6c44-4f91-b96d-3354b755ac41', 'created_at': '2024-01-06T15:33:10.843230+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/1b72adfb-6c44-4f91-b96d-3354b755ac41', 'rel': 'self'}, {'href': 'http://localhost/allocations/1b72adfb-6c44-4f91-b96d-3354b755ac41', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '4324cde6-9b78-4caf-9a30-3022566c0125', 'created_at': '2024-01-06T15:33:10.845757+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': '12345', 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/4324cde6-9b78-4caf-9a30-3022566c0125', 'rel': 'self'}, {'href': 'http://localhost/allocations/4324cde6-9b78-4caf-9a30-3022566c0125', 'rel': 'bookmark'}], 'node_uuid': None}]} +GET: /v1/allocations?owner=12345 {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-1a6a8aa7-76f0-46c8-8cd7-db41a7f1e20f +Openstack-Request-Id: req-960e25dd-97be-47c7-9306-9a84cd582c7d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.18 +X-Openstack-Ironic-Api-Version: 1.59 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/ports?detail=True&fields=name {} +GET: /v1/allocations?state=allocating {} +GOT:{'allocations': [{'uuid': 'adf0f9fa-3355-422f-8ea3-06a0366a0a61', 'created_at': '2024-01-06T15:33:11.604146+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation0', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/adf0f9fa-3355-422f-8ea3-06a0366a0a61', 'rel': 'self'}, {'href': 'http://localhost/allocations/adf0f9fa-3355-422f-8ea3-06a0366a0a61', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '079559e2-1bec-4cdb-b0d4-575954c2bcdd', 'created_at': '2024-01-06T15:33:11.606820+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/079559e2-1bec-4cdb-b0d4-575954c2bcdd', 'rel': 'self'}, {'href': 'http://localhost/allocations/079559e2-1bec-4cdb-b0d4-575954c2bcdd', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'b194cb69-5cc3-4ecb-8a86-3078082eb9f7', 'created_at': '2024-01-06T15:33:11.609185+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/b194cb69-5cc3-4ecb-8a86-3078082eb9f7', 'rel': 'self'}, {'href': 'http://localhost/allocations/b194cb69-5cc3-4ecb-8a86-3078082eb9f7', 'rel': 'bookmark'}], 'node_uuid': None}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {} +GOT:{'uuid': '510865ac-978e-4780-a2cf-7c108edd8eb1', 'created_at': '2024-01-06T15:33:12.039622+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/510865ac-978e-4780-a2cf-7c108edd8eb1', 'rel': 'self'}, {'href': 'http://localhost/allocations/510865ac-978e-4780-a2cf-7c108edd8eb1', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/de48e434-b7b1-4bc8-878c-32dedd26a7b7 {} +GOT:Response: 405 Method Not Allowed +Allow: DELETE, GET +Content-Type: application/json +{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} +GET: /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\": \"\"}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation?fields=name,extra {} +GOT:{'extra': {}, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/3f312d28-45f5-4432-ade9-086c2685fc4c', 'rel': 'self'}, {'href': 'http://localhost/allocations/3f312d28-45f5-4432-ade9-086c2685fc4c', 'rel': 'bookmark'}]} +GET: /v1/allocations?fields=uuid,extra {} +GOT:{'allocations': [{'uuid': '9e1b7e0f-74ee-4b16-a637-3aaf5b3edb9d', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/9e1b7e0f-74ee-4b16-a637-3aaf5b3edb9d', 'rel': 'self'}, {'href': 'http://localhost/allocations/9e1b7e0f-74ee-4b16-a637-3aaf5b3edb9d', 'rel': 'bookmark'}]}, {'uuid': 'cc7dc82e-3119-4b71-8a0f-3c5a9caa65b9', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/cc7dc82e-3119-4b71-8a0f-3c5a9caa65b9', 'rel': 'self'}, {'href': 'http://localhost/allocations/cc7dc82e-3119-4b71-8a0f-3c5a9caa65b9', 'rel': 'bookmark'}]}, {'uuid': '255fc358-3957-48be-b005-35d63b56c7e2', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/255fc358-3957-48be-b005-35d63b56c7e2', 'rel': 'self'}, {'href': 'http://localhost/allocations/255fc358-3957-48be-b005-35d63b56c7e2', 'rel': 'bookmark'}]}]} +GET: /v1/allocations?fields=node_uuid&limit=2 {} +GOT:{'allocations': [{'links': [{'href': 'http://localhost/v1/allocations/bbabbbf8-e300-489a-9559-5d4b72d2b016', 'rel': 'self'}, {'href': 'http://localhost/allocations/bbabbbf8-e300-489a-9559-5d4b72d2b016', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'links': [{'href': 'http://localhost/v1/allocations/fb0c4911-7df6-41f5-9498-34b28aed4f84', 'rel': 'self'}, {'href': 'http://localhost/allocations/fb0c4911-7df6-41f5-9498-34b28aed4f84', '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=fb0c4911-7df6-41f5-9498-34b28aed4f84'} +GET: /v1/allocations/1eb30191-fccf-44e0-afd1-a4dc256d444e?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b51d0706-125f-4a4c-9799-0a0d42004466 +Openstack-Request-Id: req-e94a3621-a972-46fd-86d5-55f0b13dd344 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} -GET: /v1/ports?detail=False&fields=internal_info {} -GOT:{'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'}]}]} -GET: /v1/ports?detail=True {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/allocations/520be38f-dde0-41a3-bd62-51e5b56c0417 {} +GOT:{'uuid': '520be38f-dde0-41a3-bd62-51e5b56c0417', 'created_at': '2024-01-06T15:33:14.748750+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/520be38f-dde0-41a3-bd62-51e5b56c0417', 'rel': 'self'}, {'href': 'http://localhost/allocations/520be38f-dde0-41a3-bd62-51e5b56c0417', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/708d2cc2-7747-4008-bd08-313d4050e60b?fields=resource_class,extra {} +GOT:{'extra': {}, 'resource_class': 'baremetal', 'links': [{'href': 'http://localhost/v1/allocations/708d2cc2-7747-4008-bd08-313d4050e60b', 'rel': 'self'}, {'href': 'http://localhost/allocations/708d2cc2-7747-4008-bd08-313d4050e60b', 'rel': 'bookmark'}]} +GET: /v1/allocations/9b742312-e635-4cda-82ba-15b37f136bec {} +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_custom_fields +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid ... ok GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c7e6569a-22a9-4973-b69d-f2c0573d155e +Openstack-Request-Id: req-05469a23-0a70-4bd4-b870-b92b437fa6c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/ports/detail?node=test-node&node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'ports': []} -GET: /v1/ports {} -GOT:{'ports': []} -GET: /v1/ports?node=test-node {} -GOT:{'ports': [{'uuid': '1d235794-e554-4d29-adea-73ab7777070b', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/1d235794-e554-4d29-adea-73ab7777070b', 'rel': 'self'}, {'href': 'http://localhost/ports/1d235794-e554-4d29-adea-73ab7777070b', 'rel': 'bookmark'}]}, {'uuid': '36b03002-1f38-4eb7-95e7-cc12ddf763b7', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/36b03002-1f38-4eb7-95e7-cc12ddf763b7', 'rel': 'self'}, {'href': 'http://localhost/ports/36b03002-1f38-4eb7-95e7-cc12ddf763b7', 'rel': 'bookmark'}]}, {'uuid': 'f314db37-50c3-439f-975f-5c8d81b449f5', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/f314db37-50c3-439f-975f-5c8d81b449f5', 'rel': 'self'}, {'href': 'http://localhost/ports/f314db37-50c3-439f-975f-5c8d81b449f5', 'rel': 'bookmark'}]}]} -GET: /v1/ports?node=test-node {} -GOT:{'ports': []} -GET: /v1/ports?node=test-node {} -GOT:Response: 406 Not Acceptable +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 [{'path': '/name', 'op': 'add', 'value': 'detail'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6ce9ee38-9d33-4bff-9b00-a8a94b769050 +Openstack-Request-Id: req-7479d24f-df5c-4df0-92ac-42872838d954 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/ports?node=test-node {} -GOT:{'ports': [{'uuid': '7c8709f7-3a26-4124-b027-252b10256181', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/7c8709f7-3a26-4124-b027-252b10256181', 'rel': 'self'}, {'href': 'http://localhost/ports/7c8709f7-3a26-4124-b027-252b10256181', 'rel': 'bookmark'}]}, {'uuid': '0d8cd596-95d1-46de-9519-19ff749359f9', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/0d8cd596-95d1-46de-9519-19ff749359f9', 'rel': 'self'}, {'href': 'http://localhost/ports/0d8cd596-95d1-46de-9519-19ff749359f9', 'rel': 'bookmark'}]}, {'uuid': '54a37896-0cfe-4320-ae40-0c3eaddad967', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/54a37896-0cfe-4320-ae40-0c3eaddad967', 'rel': 'self'}, {'href': 'http://localhost/ports/54a37896-0cfe-4320-ae40-0c3eaddad967', 'rel': 'bookmark'}]}]} -GET: /v1/ports/detail?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123&node=node-name {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:05.943487+00:00', 'updated_at': None, '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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/ports/detail?portgroup=fooname {} -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin_no_match -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin_no_match ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_fallback -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_fallback ... ok -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_verify_ca_error -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_verify_ca_error ... ok -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports ... ok -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet ... ok -GOT:{'portgroups': [{'uuid': 'c3efd851-a75d-42de-8b20-e4ad8c5cc423', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/c3efd851-a75d-42de-8b20-e4ad8c5cc423', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c3efd851-a75d-42de-8b20-e4ad8c5cc423', 'rel': 'bookmark'}]}, {'uuid': '503b7040-f8e6-40d1-a811-9ce3a56759a1', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/503b7040-f8e6-40d1-a811-9ce3a56759a1', 'rel': 'self'}, {'href': 'http://localhost/portgroups/503b7040-f8e6-40d1-a811-9ce3a56759a1', 'rel': 'bookmark'}]}, {'uuid': 'adb950d3-e0f3-4f93-abac-01c2f0eed26d', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/adb950d3-e0f3-4f93-abac-01c2f0eed26d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/adb950d3-e0f3-4f93-abac-01c2f0eed26d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=adb950d3-e0f3-4f93-abac-01c2f0eed26d'} -GET: /v1/portgroups/detail {} -GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T21:28:04.722133+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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/detail {} -GOT:Response: 404 Not Found +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 [{'path': '/name', 'op': 'add', 'value': 'validate'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-927fb0c0-e399-48a6-802b-bb3805c61094 +Openstack-Request-Id: req-5eb5eb2f-0f68-4569-a35f-f6826d34415e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} -GET: /v1/portgroups/detail?node=test-node {} -GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T21:28:05.306222+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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/detail {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/portgroups?detail=True {} -GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T21:28:05.836939+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {} -GOT:{'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 {} -GOT:{'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?sort_key=mode {} -GOT:{'portgroups': [{'uuid': 'b3f87502-0cc8-4b07-8d8b-99a83ce8db41', 'created_at': '2025-02-07T21:28:06.409069+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'mode_1', 'name': 'portgroup1', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/b3f87502-0cc8-4b07-8d8b-99a83ce8db41', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b3f87502-0cc8-4b07-8d8b-99a83ce8db41', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/b3f87502-0cc8-4b07-8d8b-99a83ce8db41/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b3f87502-0cc8-4b07-8d8b-99a83ce8db41/ports', 'rel': 'bookmark'}]}, {'uuid': '343d8d6c-a02e-428a-a57b-e489d3ffbbe5', 'created_at': '2025-02-07T21:28:06.407036+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:32', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'mode_2', 'name': 'portgroup2', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/343d8d6c-a02e-428a-a57b-e489d3ffbbe5', 'rel': 'self'}, {'href': 'http://localhost/portgroups/343d8d6c-a02e-428a-a57b-e489d3ffbbe5', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/343d8d6c-a02e-428a-a57b-e489d3ffbbe5/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/343d8d6c-a02e-428a-a57b-e489d3ffbbe5/ports', 'rel': 'bookmark'}]}, {'uuid': 'ae6d52f5-6c68-431a-9186-8546e4ba8a13', 'created_at': '2025-02-07T21:28:06.404707+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:33', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'mode_3', 'name': 'portgroup3', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/ae6d52f5-6c68-431a-9186-8546e4ba8a13', 'rel': 'self'}, {'href': 'http://localhost/portgroups/ae6d52f5-6c68-431a-9186-8546e4ba8a13', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/ae6d52f5-6c68-431a-9186-8546e4ba8a13/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/ae6d52f5-6c68-431a-9186-8546e4ba8a13/ports', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups/detail?sort_key=mode {} -GOT:Response: 406 Not Acceptable +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}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-add85401-9aba-4a38-9638-0568b4e2568e +Openstack-Request-Id: req-0c8b7615-5e26-46e6-8096-40508e050d34 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/portgroups?detail=True&fields=name {} +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}"} +PATCH: /v1/nodes/00cd0612-0395-42a8-88f8-948410858085 [{'path': '/allocation_uuid', 'op': 'replace', 'value': '06376091-b6f5-473e-976c-47e4ae20d167'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c4dc15b6-7e2a-4083-9605-3f4f9c99b83c +Openstack-Request-Id: req-74c39d27-4aaf-4d5d-bf7a-620ac142ad34 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} -GET: /v1/portgroups?detail=False&fields=internal_info {} -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json ... ok -GOT:Response: 406 Not Acceptable +{"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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/67bc0768-d65d-4095-8213-8965cfa3356a [{'path': '/allocation_uuid', 'op': 'replace', 'value': 'deb0730b-2bee-4257-b866-fbe410f14001'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-4ca82d71-d0f8-49e3-b892-a31107c5b3f8 +Openstack-Request-Id: req-e7356844-f0b2-4497-82a0-5deee562dcfe X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/ports {'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': 'physnet1', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 406 Not Acceptable +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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/46baecf2-0453-4456-ba24-b9e639608240 [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-50ead98b-3d4c-4844-8d8a-2f5cf56d58b4 +Openstack-Request-Id: req-773cd7e2-17c0-499e-8991-997541f12940 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 406 Not Acceptable +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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1fa1a950-9b1f-4925-9129-7f4149787236 [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-619e0fb6-6094-49ae-8af5-52d17e67ae87 +Openstack-Request-Id: req-9d339061-160d-4c8d-8d36-53726b04a063 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/196f8116-e4d1-49a6-9d0e-3cbeabc4f4de [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] +GOT:Response: 409 Conflict Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-2d788ed4-ac66-4556-b405-8dba51afc4d7 +Openstack-Request-Id: req-82609e5e-2a69-4945-9aef-8a2509e24211 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:05.780897+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} -POST: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.5 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"this-is-my-node\", \"debuginfo\": null}"} +PATCH: /v1/nodes/19d07abc-6d4d-479d-9fa4-fe1a40a35124 [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-61b75078-1a6b-4155-b434-40eb618732cc +Openstack-Request-Id: req-f29d1418-7eb0-4cec-89a5-815900a2370d X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'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 +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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'remove'}] +ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state +ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one ... ok +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_5_public_api +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_5_public_api ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_forbidden ... ok +ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not +ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version ... ok +ironic.tests.unit.common.test_fsm.FSMTest.test_process_event +ironic.tests.unit.common.test_fsm.FSMTest.test_process_event ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_agent_status_error +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_agent_status_error ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_014_nodes_node_ident_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_014_nodes_node_ident_get_admin ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail ... ok +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-59daaf67-2c67-4b34-9f80-bffd682c7d7a +Openstack-Request-Id: req-7608b574-4521-4624-90e1-c10f222c69b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:06.343236+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/node_id', 'value': '1', 'op': 'add'}] -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:13.789520+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": 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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-05620dab-d1f7-49b4-90ff-c28df035dc6d +Openstack-Request-Id: req-e6ba9658-2938-45e5-81e9-ff9b47acefab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a0cf4ffd-fdf4-4c4b-ac1f-47fa6c82c209 +Openstack-Request-Id: req-e6ba9658-2938-45e5-81e9-ff9b47acefab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:06.837350+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get / +GET: / {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-26539338-6cf6-4f80-80a1-df56eeb26557 +{"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.80"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.80"}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-26539338-6cf6-4f80-80a1-df56eeb26557 +{"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.80"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.80"}]} +API ACL Testing Path get /v1 +GET: /v1 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a5b62651-36e2-4096-a855-74f1bc1b1687 +Openstack-Request-Id: req-222d89bf-623a-4358-9220-df2e9c8c1897 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:07.120896+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed ... ok -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_bios -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_bios ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi ... ok -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_uefi -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_uefi ... ok -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment ... ok -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment_no_physnet -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment_no_physnet ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission ... ok -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up ... ok -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub ... ok -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface ... ok -:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_invalid_power_update -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_invalid_power_update ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe ... ok -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id ... ok -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address ... ok -:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-b3e1bbc8-333b-4220-a441-a23058ab71a8 +{"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.80"}, "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"}]} +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available ... ok +ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable +ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable ... ok +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_6_public_api_v1 +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_6_public_api_v1 ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_version +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key ... ok +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-5ea26994-a025-46b5-8c72-3a1dbe1e96e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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", "cpus": "8", "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'clean_step': {}, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': 'neutron', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, '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'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.76 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'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-9d157bf1-a763-4cb3-85ab-7972706a4ee5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.15 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}]} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-bae7059b-e174-4bb8-9530-3d956725a161 +Openstack-Request-Id: req-2d8d1c29-5b70-4e12-9032-31d3ef136648 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.21 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:06.263139+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", "cpus": "8", "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:06.263139+00:00', 'updated_at': None, 'clean_step': {}, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': 'flat', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'class2', 'target_power_state': None, 'target_provision_state': None, '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'}]} -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver ... ok -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 204 No Content -Openstack-Request-Id: req-12102a80-1bea-4c28-8a63-ab974e1c40ae +X-Openstack-Ironic-Api-Version: 1.15 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"bad\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'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-3fa239e1-c54a-4fb1-83f0-c02716149380 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 +X-Openstack-Ironic-Api-Version: 1.70 -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 404 Not Found +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}], 'disable_ramdisk': True} +GOT:Response: 406 Not Acceptable Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-1e9f1fbd-cbc5-49ce-91f3-e14b30eab952 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-99d3ee89-c253-49cb-9be1-75776019bd84 +Openstack-Request-Id: req-58601365-a7da-4378-921a-1494ea2c7451 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Request-Id: req-c05a370d-ea66-411d-8d0a-f91ed5d28174 +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +GOT:Response: 204 No Content +Openstack-Request-Id: req-fdef53bd-ef6b-4335-b355-d2293b7d3602 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'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 +X-Openstack-Ironic-Api-Version: 1.29 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e9b388b9-d84e-40db-9935-e5ac5dfdc607 +Openstack-Request-Id: req-dffa37ee-075e-40a0-bcd7-c9b6e07e8636 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:05.169841+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"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.28 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-4f39a8a6-697d-455e-80f3-c98abb94b3cc +Openstack-Request-Id: req-b9cb5e06-5b08-46d8-aeed-5873d3463c50 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-be58717b-ff44-40db-adb0-471051c9e963 +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-8a83f937-96c2-495b-bba6-340ec7286703 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:05.794892+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"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.41 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-1f130056-2fda-40e2-98ad-d2cff724c7db +Openstack-Request-Id: req-463bd5dc-fe31-4b2d-876b-37030a32f28f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.40 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manageable'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-eebb3e61-c5ae-48d2-92fd-9ee5625f7d20 +Openstack-Request-Id: req-dbccdc05-abc9-443d-a85d-f375ff3b6618 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:06.350171+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"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'inspect'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b143b3c5-0413-48c5-8c1b-e0a02d9f9b9f +Openstack-Request-Id: req-0dd902f5-f2a9-498e-8c7b-1d4fffb620a1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/value', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.6 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'inspect'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-acf614f5-7ef8-44ac-a5c0-6e766462147c +Openstack-Request-Id: req-67bab91d-13c9-4952-8f50-c308d5ab2bff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /value. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-6948cdb0-10a2-4d53-8198-597527c91506 +X-Openstack-Ironic-Api-Version: 1.6 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manage'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-da383e84-7df2-46ab-b9ac-fc2a978ff1dd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:07.023193+00:00", "updated_at": "2025-02-07T21:28:07.032188+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 [{'path': '/extra', 'op': 'remove'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.17 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manage'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-c80698aa-dcae-4e3d-83a2-b19ea7f19b35 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.4 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power off'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b05fca0a-ccf7-4206-8f8c-c252ad684cc7 +Openstack-Request-Id: req-107b9bba-d54b-4936-b872-a473d34176d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:07.023193+00:00", "updated_at": "2025-02-07T21:28:07.032188+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"} -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid ... ok -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_3 -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_3 ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config ... ok -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_4 -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_4 ... ok -:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_5 -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_5 ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info ... ok -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_anaconda -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_anaconda ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id ... ok -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova ... ok -:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_iso -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_iso ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_network_type_unmanaged -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_network_type_unmanaged ... ok +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 {'target': 'power off'} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:14.205307+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': 'project', 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': None, 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-27ecd565-827a-4bab-9131-dea6404c69e5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/nodes {'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', 'cpus': '8', '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-e1fb13f7-c409-42b3-ae8d-ffdd10474a84 +Openstack-Request-Id: req-d23135d9-1d59-41de-9437-9ca453399798 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.10 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create node with invalid name ''\", \"debuginfo\": null}"} +POST: /v1/nodes {'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', 'cpus': '8', '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-60f3dd9f-fe8e-4a97-90f0-38b857259b43 +Openstack-Request-Id: req-47016152-f509-45d3-8639-b01f2da33381 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-f22315e8-8cc6-47b3-ac46-762133dff1a6 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name ... ok +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_empty_string +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_empty_string ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid ... ok +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_015_nodes_node_ident_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_015_nodes_node_ident_get_member ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbid_project_mismatch +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbid_project_mismatch ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden ... ok +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_7_public_api_v1_slash +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_7_public_api_v1_slash ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request ... ok +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_segmented +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_segmented ... ok +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden_no_project +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden_no_project ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_owner_field +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_owner_field ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name ... ok +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link ... ok +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-222d89bf-623a-4358-9220-df2e9c8c1897 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.76 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'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-ae017576-865b-47db-9614-5b62aa9c3611 +X-Openstack-Ironic-Api-Version: 1.80 +{"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.80"}, "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"}]} +API ACL Testing Path get /v1/ +GET: /v1/ {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-5efbc1e0-22d4-4538-b9ef-863edb77dd8d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.15 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}]} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"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.80"}, "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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0d41f243-5db1-4bdd-93e7-e76e756ac998 +Openstack-Request-Id: req-5efbc1e0-22d4-4538-b9ef-863edb77dd8d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.15 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"bad\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'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-bbb4378b-258a-4abe-ae33-86e55991f7bb +X-Openstack-Ironic-Api-Version: 1.80 +{"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.80"}, "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"}]} +API ACL Testing Path get /v1.json +GET: /v1.json {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-144e04ae-c560-461a-a6e9-1ca39a6cf275 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.70 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}], 'disable_ramdisk': True} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.5 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:15.572642+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", "cpus": "8", "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"}]} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'guido-van-rossum'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-03b26976-342a-433b-90bd-93e6c56d3239 +Openstack-Request-Id: req-f84fef6d-0473-4df1-86c8-904af7c94eed X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.5 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:16.403060+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", "cpus": "8", "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"}]} +PATCH: /v1/nodes/6f7b09a9-12d5-4e4b-9f3a-5152fe3174f8 [{'path': '/description', 'value': 'foo', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-15a5bbb1-944f-4bb1-82d8-4adaea07df00 +Openstack-Request-Id: req-3fd35a3c-3b3e-4f88-9c6b-c42d27fc2eb6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} -GOT:Response: 204 No Content -Openstack-Request-Id: req-74b7f832-57e3-4ab1-a925-dcd128c7a5cb +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6f7b09a9-12d5-4e4b-9f3a-5152fe3174f8", "created_at": "2024-01-06T15:33:17.195922+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/6f7b09a9-12d5-4e4b-9f3a-5152fe3174f8", "rel": "self"}, {"href": "http://localhost/nodes/6f7b09a9-12d5-4e4b-9f3a-5152fe3174f8", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6f7b09a9-12d5-4e4b-9f3a-5152fe3174f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/6f7b09a9-12d5-4e4b-9f3a-5152fe3174f8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6f7b09a9-12d5-4e4b-9f3a-5152fe3174f8/states", "rel": "self"}, {"href": "http://localhost/nodes/6f7b09a9-12d5-4e4b-9f3a-5152fe3174f8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6f7b09a9-12d5-4e4b-9f3a-5152fe3174f8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6f7b09a9-12d5-4e4b-9f3a-5152fe3174f8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6f7b09a9-12d5-4e4b-9f3a-5152fe3174f8/volume", "rel": "self"}, {"href": "http://localhost/nodes/6f7b09a9-12d5-4e4b-9f3a-5152fe3174f8/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/df131a00-b637-47b5-be20-f0403efc1664 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_non_admin +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_non_admin ... ok +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields ... ok +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_8_public_api_v1_json +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_8_public_api_v1_json ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_016_nodes_node_ident_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_016_nodes_node_ident_get_observer ... ok +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported ... ok +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-bf4df2b6-41e7-4560-8343-c80bb4630737 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} +GET: /v1/drivers?detail=False {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-9b6721b2-3c37-4749-b05c-00a73cf48f7d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +GET: /v1/drivers/nope {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7022f087-f99b-4b47-97a6-600f891dddf6 +Openstack-Request-Id: req-6ee66676-4dec-4301-ab16-fd5ab2396b33 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +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}"} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'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_console_interface': None, 'enabled_console_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['ansible', 'direct']} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'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 {} +GOT:{'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/properties {} +GET: /drivers/fake-hardware-type/properties {} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'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_console_interface': None, 'enabled_console_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['ansible', 'direct'], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_storage_interface': None, 'enabled_storage_interfaces': []} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'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 {} +GOT:{'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/properties {} +GET: /drivers/fake-hardware-type/properties {} +GET: /v1/drivers {} +GOT:{'drivers': []} +GET: /v1/drivers?type=working {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b8fd3e95-40b3-424f-b50b-2f21ae952cf4 +Openstack-Request-Id: req-503b8c1e-1fc1-48fb-bfa7-9a8b5c3bce00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-9114dcb8-7a47-4289-9b7c-d94fc2f5ec6c +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}"} +GET: /v1/drivers?type=classic {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-a2429fed-f480-44c9-951b-444e2f6ad0c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.41 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} -GOT:Response: 406 Not Acceptable +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}"} +GET: /v1/drivers?type=classic {} +GOT:{'drivers': []} +GET: /v1/drivers?type=dynamic {} +GOT:{'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 {} +GOT:{'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 {} +GOT:{'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 {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden_no_project +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden_no_project ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve ... ok +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-fd5bc4ff-abaa-4f1a-b4f3-441c9ee53e32 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-965da2ee-4eff-4ead-8045-ee05f314e2e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manageable'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:16.940525+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", "cpus": "8", "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, "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:16.940525+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': None, 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-022c8ed4-c0b8-4296-8d7f-0e7e86080e8c +Openstack-Request-Id: req-aa557f49-76cf-4372-8424-b081be873fa1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'inspect'} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}} +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port ... ok +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_9_public_api_v1_xml +ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_9_public_api_v1_xml ... ok +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href ... ok +GOT:{'nodes': [{'uuid': '3911fd6a-b779-40f7-9de3-680db9f7af8d', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/3911fd6a-b779-40f7-9de3-680db9f7af8d', 'rel': 'self'}, {'href': 'http://localhost/nodes/3911fd6a-b779-40f7-9de3-680db9f7af8d', 'rel': 'bookmark'}]}, {'uuid': '33f92100-7475-4aca-b919-c8890d5133d1', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/33f92100-7475-4aca-b919-c8890d5133d1', 'rel': 'self'}, {'href': 'http://localhost/nodes/33f92100-7475-4aca-b919-c8890d5133d1', 'rel': 'bookmark'}]}, {'uuid': '4e98fb3a-6e96-4f4b-a9d3-c73c641a4456', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/4e98fb3a-6e96-4f4b-a9d3-c73c641a4456', 'rel': 'self'}, {'href': 'http://localhost/nodes/4e98fb3a-6e96-4f4b-a9d3-c73c641a4456', 'rel': 'bookmark'}]}, {'uuid': '40c624b6-d691-45d9-83a8-aba8adca8fe8', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/40c624b6-d691-45d9-83a8-aba8adca8fe8', 'rel': 'self'}, {'href': 'http://localhost/nodes/40c624b6-d691-45d9-83a8-aba8adca8fe8', 'rel': 'bookmark'}]}, {'uuid': '2699381a-0b10-43d6-aa69-40ab6ab25192', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/2699381a-0b10-43d6-aa69-40ab6ab25192', 'rel': 'self'}, {'href': 'http://localhost/nodes/2699381a-0b10-43d6-aa69-40ab6ab25192', 'rel': 'bookmark'}]}]} +GET: /v1/nodes {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f8314f2b-74a5-432e-9a4d-e43484ef41d7 +Openstack-Request-Id: req-c92242c4-04f8-430b-a25b-aca9cde6f5be X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'inspect'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.50 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} +GET: /v1/nodes {} +GOT:{'nodes': [{'uuid': '3a388fdf-3f40-4276-8fe3-0772d93a3276', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-0', 'links': [{'href': 'http://localhost/v1/nodes/3a388fdf-3f40-4276-8fe3-0772d93a3276', 'rel': 'self'}, {'href': 'http://localhost/nodes/3a388fdf-3f40-4276-8fe3-0772d93a3276', 'rel': 'bookmark'}]}, {'uuid': 'b6f71838-08a5-44c8-99f5-5b96647d4f28', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-1', 'links': [{'href': 'http://localhost/v1/nodes/b6f71838-08a5-44c8-99f5-5b96647d4f28', 'rel': 'self'}, {'href': 'http://localhost/nodes/b6f71838-08a5-44c8-99f5-5b96647d4f28', 'rel': 'bookmark'}]}, {'uuid': 'c4782bee-301c-48dd-a965-a67f93f1bc9e', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-2', 'links': [{'href': 'http://localhost/v1/nodes/c4782bee-301c-48dd-a965-a67f93f1bc9e', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4782bee-301c-48dd-a965-a67f93f1bc9e', 'rel': 'bookmark'}]}, {'uuid': 'e448a248-4c05-456b-8ada-53037576225b', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-3', 'links': [{'href': 'http://localhost/v1/nodes/e448a248-4c05-456b-8ada-53037576225b', 'rel': 'self'}, {'href': 'http://localhost/nodes/e448a248-4c05-456b-8ada-53037576225b', 'rel': 'bookmark'}]}, {'uuid': '94dcfd02-1c9f-4d07-a8c5-35831b3d1beb', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-4', 'links': [{'href': 'http://localhost/v1/nodes/94dcfd02-1c9f-4d07-a8c5-35831b3d1beb', 'rel': 'self'}, {'href': 'http://localhost/nodes/94dcfd02-1c9f-4d07-a8c5-35831b3d1beb', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?project=54321 {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7b000c4c-e8df-4328-b8e4-5939b02b636c +Openstack-Request-Id: req-7df4bfba-6175-4ec9-a2cc-1c51bd6f4e82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manage'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-45f793d0-5ed9-4920-8175-55525ba6ab69 +X-Openstack-Ironic-Api-Version: 1.50 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} +GET: /v1/nodes {} +GOT:{'nodes': [{'uuid': '4d748172-def6-49e9-bab6-74c89ce635a6', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/4d748172-def6-49e9-bab6-74c89ce635a6', 'rel': 'self'}, {'href': 'http://localhost/nodes/4d748172-def6-49e9-bab6-74c89ce635a6', 'rel': 'bookmark'}]}, {'uuid': '8c76f16f-eff2-4074-b270-8d7382805467', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/8c76f16f-eff2-4074-b270-8d7382805467', 'rel': 'self'}, {'href': 'http://localhost/nodes/8c76f16f-eff2-4074-b270-8d7382805467', 'rel': 'bookmark'}]}, {'uuid': '4021af31-d7c3-4be4-bf97-4b2e5cc55b25', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/4021af31-d7c3-4be4-bf97-4b2e5cc55b25', 'rel': 'self'}, {'href': 'http://localhost/nodes/4021af31-d7c3-4be4-bf97-4b2e5cc55b25', 'rel': 'bookmark'}]}, {'uuid': '30dbc811-83f0-4c3b-ba1a-7ec7ce7dd9bd', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/30dbc811-83f0-4c3b-ba1a-7ec7ce7dd9bd', 'rel': 'self'}, {'href': 'http://localhost/nodes/30dbc811-83f0-4c3b-ba1a-7ec7ce7dd9bd', 'rel': 'bookmark'}]}, {'uuid': 'b821aff7-6a81-40fe-88d1-7d75433b369b', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/b821aff7-6a81-40fe-88d1-7d75433b369b', 'rel': 'self'}, {'href': 'http://localhost/nodes/b821aff7-6a81-40fe-88d1-7d75433b369b', 'rel': 'bookmark'}]}, {'uuid': '61e9a482-a017-4f50-951c-d8596f50d82a', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/61e9a482-a017-4f50-951c-d8596f50d82a', 'rel': 'self'}, {'href': 'http://localhost/nodes/61e9a482-a017-4f50-951c-d8596f50d82a', 'rel': 'bookmark'}]}]} +GET: /v1/nodes {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-a9e50f08-2967-446c-a4e1-6d3eaea589d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.17 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manage'} -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver ... ok +X-Openstack-Ironic-Api-Version: 1.49 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:19.273660+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {} +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra_and_instance_info +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra_and_instance_info ... ok +ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated +ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port_policy_forbidden +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port_policy_forbidden ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type_old_api +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type_old_api ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver ... ok -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 ... ok -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_ramdisk -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_ramdisk ... ok -:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info ... ok -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config ... ok -PATCH: /v1/deploy_templates/2ba1659d-0f2f-4e3f-8c16-82be50ace49c [{'path': '/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_017_nodes_node_ident_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_017_nodes_node_ident_patch_admin ... ok +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file ... ok +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4988261a-a8a0-4947-8a74-6cc937f78cd8 +Openstack-Request-Id: req-72254716-6d0a-43e8-bf4d-4838a00909f8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/d2ed05b7-fc2e-4e05-bd3c-dac1bc61fa01 [{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.34 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:14.235369+00:00", "updated_at": "2024-01-06T15:33:14.282871+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-a5bcaf8a-8a7a-4e25-a1c1-27742172602a +Openstack-Request-Id: req-9b461cb4-da10-4b2d-b54d-912275537851 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/deploy_templates/58bf6725-aa63-4b3b-9414-9eea5eefd62a [{'path': '/foo', 'op': 'remove'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.33 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-c9c3cc8a-dbb9-4d09-a007-3300350f68ce +Openstack-Request-Id: req-8cb48380-58e2-42da-b478-52bee591a560 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/fb00b163-c6c6-4ac8-aa15-19246c9aa06b [{'path': '/steps/1', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.34 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '216f91ce-753e-4eef-9f2e-6e320459c759', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bdbb1117-4c5d-4f90-aa4d-6192a36f2cfd +Openstack-Request-Id: req-cd924281-4fbe-43df-889d-65e03b7c2f4a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "fb00b163-c6c6-4ac8-aa15-19246c9aa06b", "created_at": "2025-02-07T21:28:06.412158+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/fb00b163-c6c6-4ac8-aa15-19246c9aa06b", "rel": "self"}, {"href": "http://localhost/deploy_templates/fb00b163-c6c6-4ac8-aa15-19246c9aa06b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}]} -PATCH: /v1/deploy_templates/00b20bf0-4165-4baa-a76f-a854645f139d [{'path': '/name', 'op': 'remove'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.24 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:15.699972+00:00", "updated_at": "2024-01-06T15:33:15.777677+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "216f91ce-753e-4eef-9f2e-6e320459c759"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-32a5e8c3-8405-4777-8933-efb712c22c24 +Openstack-Request-Id: req-26c98d3a-ab7a-4dab-986d-50de17ac9aeb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/a3e5d9e5-55ed-44ca-a17b-7038964645d4 [{'path': '/non-existent', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:16.189128+00:00", "updated_at": "2024-01-06T15:33:16.221854+00:00", "address": "aa:bb:cc:dd:ee:ff", "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"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-2bad46d4-a206-43b7-8875-b4f210fcd18a +Openstack-Request-Id: req-5419e939-2b38-4373-b791-857ce9147038 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /non-existent. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/b8c4d86a-2fa1-42fa-b855-8ba6c0c6b27a [{'path': '/steps/1', 'op': 'remove'}] +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\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': '', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-922d2a6a-8150-431d-8e33-e93ca533b458 +Openstack-Request-Id: req-be8a72b9-4ea8-4dbc-b5c2-f8716b74fa91 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'remove'}'. Reason: can't remove a non-existent object '1'\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/cd61b3eb-4620-4350-ab49-ee71e8f05f33 [{'path': '/steps/0/non-existent', 'op': 'remove'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 1234, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-bb753c05-ae53-4d8f-8fb3-b3302d518c41 +Openstack-Request-Id: req-c8f04603-4eff-443d-a8ec-b4a2e55b8b63 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/0/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/e8e728b2-a560-4d49-a5b6-440732b322f2 [{'path': '/steps/0', 'op': 'remove'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-772a0995-388e-41da-8f2c-23ceee0c1f19 +Openstack-Request-Id: req-177c1043-4c2e-4889-bcd5-26c0be769a9b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/076bdf46-0586-44d9-8738-0086c3969595 [{'path': '/steps', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/07cefb4a-d17d-45bf-afa3-4321d59c877e [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-95c29457-6367-4ed6-82ff-425dfc405f35 +Openstack-Request-Id: req-e13a31b9-8040-46d9-9515-5a47b49c0a21 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'steps' is a required property\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/19ddc960-9fcb-4fcc-a081-453419d21d46 [{'path': '/uuid', 'op': 'remove'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PATCH: /v1/ports/b9eb6e17-4352-4d2c-b3e9-4323ea4e1151 [{'path': '/local_link_connection/network_type', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2e87278a-cbf0-4f22-b046-9e167964e92e +Openstack-Request-Id: req-681a8484-19cc-4c14-80c3-1da8bd1b3176 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/47a0384a-e61c-4630-b774-a40f12b750a9 [{'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 +X-Openstack-Ironic-Api-Version: 1.64 +{"uuid": "b9eb6e17-4352-4d2c-b3e9-4323ea4e1151", "created_at": "2024-01-06T15:33:18.925575+00:00", "updated_at": "2024-01-06T15:33:19.024540+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, "links": [{"href": "http://localhost/v1/ports/b9eb6e17-4352-4d2c-b3e9-4323ea4e1151", "rel": "self"}, {"href": "http://localhost/ports/b9eb6e17-4352-4d2c-b3e9-4323ea4e1151", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/network_type', 'op': 'remove'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-d2310159-c3e4-45bb-bfb5-b44d7d0e23ef +Openstack-Request-Id: req-cdcb7e0f-814a-40bc-9d29-d599a2142f64 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/deploy_templates/f0cc9304-bc3e-4727-b757-2d59917c74a1 [{'path': '/steps', 'op': 'replace', 'value': []}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.63 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/switch_id', 'op': 'remove'}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a9b2bce6-3353-439b-9015-a733811bdf9d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/5102c93f-76d1-4ca1-a98b-110c70a9dcda [{'path': '/name', 'op': 'replace', 'value': None}] -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_step_invalid_interface -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_step_invalid_interface ... ok -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 -ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info ... ok -:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_multipath -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_multipath ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups ... ok -GOT:{'deploy_templates': [{'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/3fe21464-2013-4d15-9dad-7200869a7078', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3fe21464-2013-4d15-9dad-7200869a7078', 'rel': 'bookmark'}]}, {'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/4faa82b9-49be-4303-afb1-4e9c237aa3df', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4faa82b9-49be-4303-afb1-4e9c237aa3df', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=4faa82b9-49be-4303-afb1-4e9c237aa3df'} -GET: /v1/deploy_templates/d818cce9-5e4f-495a-9934-5650bd2dc2cb?fields=uuid,spongebob {} -GOT:Response: 400 Bad Request +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} +GET: /v1/allocations/ba!na!na! {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e5559bf2-c85b-4634-9585-9f5f17d0ad17 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} +GET: /v1/allocations/e5dbedd7-fb63-41ce-a9d6-1a71d3467900.json {} +GOT:{'uuid': 'e5dbedd7-fb63-41ce-a9d6-1a71d3467900', 'created_at': '2024-01-06T15:33:16.606379+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/e5dbedd7-fb63-41ce-a9d6-1a71d3467900', 'rel': 'self'}, {'href': 'http://localhost/allocations/e5dbedd7-fb63-41ce-a9d6-1a71d3467900', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/4b09b671-76e4-407f-a74d-1ceeb4048086 {} +GOT:{'uuid': '4b09b671-76e4-407f-a74d-1ceeb4048086', 'created_at': '2024-01-06T15:33:17.055162+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'pg.json', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/4b09b671-76e4-407f-a74d-1ceeb4048086', 'rel': 'self'}, {'href': 'http://localhost/allocations/4b09b671-76e4-407f-a74d-1ceeb4048086', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/dc8128af-3728-431a-86a5-bd5ac920e8f3 {} +GOT:{'uuid': 'dc8128af-3728-431a-86a5-bd5ac920e8f3', 'created_at': '2024-01-06T15:33:17.483486+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'pg.1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/dc8128af-3728-431a-86a5-bd5ac920e8f3', 'rel': 'self'}, {'href': 'http://localhost/allocations/dc8128af-3728-431a-86a5-bd5ac920e8f3', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/928499aa-ee59-4491-ba77-f251135c8f3e?fields=owner {} +GOT:{'owner': '12345', 'links': [{'href': 'http://localhost/v1/allocations/928499aa-ee59-4491-ba77-f251135c8f3e', 'rel': 'self'}, {'href': 'http://localhost/allocations/928499aa-ee59-4491-ba77-f251135c8f3e', 'rel': 'bookmark'}]} +GET: /v1/allocations/2a830ac6-ce9e-4535-9332-10609d0059f2 {} +GOT:{'uuid': '2a830ac6-ce9e-4535-9332-10609d0059f2', 'created_at': '2024-01-06T15:33:18.336433+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/2a830ac6-ce9e-4535-9332-10609d0059f2', 'rel': 'self'}, {'href': 'http://localhost/allocations/2a830ac6-ce9e-4535-9332-10609d0059f2', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations/2a830ac6-ce9e-4535-9332-10609d0059f2 {} +GOT:{'uuid': '2a830ac6-ce9e-4535-9332-10609d0059f2', 'created_at': '2024-01-06T15:33:18.336433+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/2a830ac6-ce9e-4535-9332-10609d0059f2', 'rel': 'self'}, {'href': 'http://localhost/allocations/2a830ac6-ce9e-4535-9332-10609d0059f2', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /allocations/2a830ac6-ce9e-4535-9332-10609d0059f2 {} +GOT:{'uuid': '2a830ac6-ce9e-4535-9332-10609d0059f2', 'created_at': '2024-01-06T15:33:18.336433+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/2a830ac6-ce9e-4535-9332-10609d0059f2', 'rel': 'self'}, {'href': 'http://localhost/allocations/2a830ac6-ce9e-4535-9332-10609d0059f2', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/allocations {} +GOT:{'allocations': [{'uuid': 'ea3f7111-73b2-4c97-a7b3-4f852168e2c5', 'created_at': '2024-01-06T15:33:18.971200+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation0', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/ea3f7111-73b2-4c97-a7b3-4f852168e2c5', 'rel': 'self'}, {'href': 'http://localhost/allocations/ea3f7111-73b2-4c97-a7b3-4f852168e2c5', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '303197b5-6087-4df6-b233-53e882c9b981', 'created_at': '2024-01-06T15:33:18.972899+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/303197b5-6087-4df6-b233-53e882c9b981', 'rel': 'self'}, {'href': 'http://localhost/allocations/303197b5-6087-4df6-b233-53e882c9b981', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '0039636f-ac6f-4ac8-908b-22d8c3ea5b84', 'created_at': '2024-01-06T15:33:18.974231+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/0039636f-ac6f-4ac8-908b-22d8c3ea5b84', 'rel': 'self'}, {'href': 'http://localhost/allocations/0039636f-ac6f-4ac8-908b-22d8c3ea5b84', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '8303749f-ada4-4a2e-b5ce-f4342a4cf880', 'created_at': '2024-01-06T15:33:18.975706+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation3', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/8303749f-ada4-4a2e-b5ce-f4342a4cf880', 'rel': 'self'}, {'href': 'http://localhost/allocations/8303749f-ada4-4a2e-b5ce-f4342a4cf880', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'd9cb51a7-af18-4677-ae16-7358a9b39796', 'created_at': '2024-01-06T15:33:18.977292+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation4', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/d9cb51a7-af18-4677-ae16-7358a9b39796', 'rel': 'self'}, {'href': 'http://localhost/allocations/d9cb51a7-af18-4677-ae16-7358a9b39796', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/allocations {} +GOT:{'allocations': [{'uuid': '60009984-91a2-4787-b7ad-f0ae7871ce66', 'created_at': '2024-01-06T15:33:19.998397+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/60009984-91a2-4787-b7ad-f0ae7871ce66', 'rel': 'self'}, {'href': 'http://localhost/allocations/60009984-91a2-4787-b7ad-f0ae7871ce66', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/allocations?sort_key=uuid {} +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_policy_notfound +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_policy_notfound ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-0d8eed54-5646-4b2b-b9de-15f3c8407958 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} -GET: /v1/deploy_templates/ebb55e07-45c7-4877-bdc8-28cd6633ebac {} -GOT:{'uuid': 'ebb55e07-45c7-4877-bdc8-28cd6633ebac', 'created_at': '2025-02-07T21:28:06.025557+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/ebb55e07-45c7-4877-bdc8-28cd6633ebac', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/ebb55e07-45c7-4877-bdc8-28cd6633ebac', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -GET: /v1/deploy_templates/a313717f-c6f5-45f6-8d56-add6dddc0178?fields=name,steps {} -GOT:{'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/a313717f-c6f5-45f6-8d56-add6dddc0178', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a313717f-c6f5-45f6-8d56-add6dddc0178', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -GET: /v1/deploy_templates/86aff80d-3421-48f8-9657-2351d7a0193c {} -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\"}"} -GET: /v1/deploy_templates/8eb83f1c-4854-41c8-8e9c-73ff69ac2390.json {} -GOT:{'uuid': '8eb83f1c-4854-41c8-8e9c-73ff69ac2390', 'created_at': '2025-02-07T21:28:06.765137+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/8eb83f1c-4854-41c8-8e9c-73ff69ac2390', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/8eb83f1c-4854-41c8-8e9c-73ff69ac2390', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -GET: /v1/deploy_templates/25a2458f-dfe6-4b90-a8dc-d7ce5ff9f37e {} -GOT:{'uuid': '25a2458f-dfe6-4b90-a8dc-d7ce5ff9f37e', 'created_at': '2025-02-07T21:28:06.967989+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/25a2458f-dfe6-4b90-a8dc-d7ce5ff9f37e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/25a2458f-dfe6-4b90-a8dc-d7ce5ff9f37e', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -GET: /v1/deploy_templates/4cea7b63-5747-4397-ae1a-3302ec8af680 {} -GOT:{'uuid': '4cea7b63-5747-4397-ae1a-3302ec8af680', 'created_at': '2025-02-07T21:28:07.205008+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/4cea7b63-5747-4397-ae1a-3302ec8af680', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4cea7b63-5747-4397-ae1a-3302ec8af680', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -GET: /v1/deploy_templates/4cea7b63-5747-4397-ae1a-3302ec8af680 {} -GOT:{'uuid': '4cea7b63-5747-4397-ae1a-3302ec8af680', 'created_at': '2025-02-07T21:28:07.205008+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/4cea7b63-5747-4397-ae1a-3302ec8af680', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4cea7b63-5747-4397-ae1a-3302ec8af680', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -GET: /deploy_templates/4cea7b63-5747-4397-ae1a-3302ec8af680 {} -GOT:{'uuid': '4cea7b63-5747-4397-ae1a-3302ec8af680', 'created_at': '2025-02-07T21:28:07.205008+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/4cea7b63-5747-4397-ae1a-3302ec8af680', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4cea7b63-5747-4397-ae1a-3302ec8af680', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} -GET: /v1/deploy_templates {} -GOT:{'deploy_templates': [{'uuid': 'd419d066-b32f-4c6b-800e-c6f57c5b8098', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/d419d066-b32f-4c6b-800e-c6f57c5b8098', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d419d066-b32f-4c6b-800e-c6f57c5b8098', 'rel': 'bookmark'}]}, {'uuid': 'fea6b2ad-8e3f-4e56-ba3a-6fdfa56cdfe0', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/fea6b2ad-8e3f-4e56-ba3a-6fdfa56cdfe0', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/fea6b2ad-8e3f-4e56-ba3a-6fdfa56cdfe0', 'rel': 'bookmark'}]}, {'uuid': '50ca23f3-4b22-49e5-a995-c123f1351671', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/50ca23f3-4b22-49e5-a995-c123f1351671', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/50ca23f3-4b22-49e5-a995-c123f1351671', 'rel': 'bookmark'}]}, {'uuid': 'e622d2d4-067c-44c1-b237-7ee5e5e6dd42', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/e622d2d4-067c-44c1-b237-7ee5e5e6dd42', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/e622d2d4-067c-44c1-b237-7ee5e5e6dd42', 'rel': 'bookmark'}]}, {'uuid': '1ea79989-e539-414b-8896-c3407976ea6b', 'name': 'CUSTOM_DT4', 'links': [{'href': 'http://localhost/v1/deploy_templates/1ea79989-e539-414b-8896-c3407976ea6b', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1ea79989-e539-414b-8896-c3407976ea6b', 'rel': 'bookmark'}]}]} -GET: /v1/deploy_templates {} -GOT:{'deploy_templates': [{'uuid': 'fd15cf76-82ed-4356-b248-259469aacbe6', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/fd15cf76-82ed-4356-b248-259469aacbe6', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/fd15cf76-82ed-4356-b248-259469aacbe6', 'rel': 'bookmark'}]}]} -GET: /v1/deploy_templates/4d85543a-cbc2-48cc-bc81-011ce1027dad {} -GOT:{'uuid': '4d85543a-cbc2-48cc-bc81-011ce1027dad', 'created_at': '2025-02-07T21:28:07.916863+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/4d85543a-cbc2-48cc-bc81-011ce1027dad', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4d85543a-cbc2-48cc-bc81-011ce1027dad', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': [], 'password': '******'}, 'priority': 10}]} -GET: /v1/deploy_templates?sort_key=uuid {} -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_insecure_heartbeat -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_insecure_heartbeat ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes ... ok -GOT:{'nodes': [{'uuid': '41e1982d-7c73-4659-a6cc-e457f1015e99', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/41e1982d-7c73-4659-a6cc-e457f1015e99', 'rel': 'self'}, {'href': 'http://localhost/nodes/41e1982d-7c73-4659-a6cc-e457f1015e99', 'rel': 'bookmark'}]}, {'uuid': '00d853ae-558e-4b7e-9ee0-7ae8e42d1c98', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/00d853ae-558e-4b7e-9ee0-7ae8e42d1c98', 'rel': 'self'}, {'href': 'http://localhost/nodes/00d853ae-558e-4b7e-9ee0-7ae8e42d1c98', 'rel': 'bookmark'}]}, {'uuid': '240a3cdd-c865-442e-93d1-8b261bcbcc5c', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/240a3cdd-c865-442e-93d1-8b261bcbcc5c', 'rel': 'self'}, {'href': 'http://localhost/nodes/240a3cdd-c865-442e-93d1-8b261bcbcc5c', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?fields=uuid,power_state,target_power_state,provision_state,target_provision_state,last_error,maintenance,instance_uuid,traits,resource_class {} -GOT:{'nodes': [{'uuid': '9af2e499-b37d-4f75-ad8e-14cb8c77e2df', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': '786a198a-556f-42b5-93e1-13aa907e0a6f', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/9af2e499-b37d-4f75-ad8e-14cb8c77e2df', 'rel': 'self'}, {'href': 'http://localhost/nodes/9af2e499-b37d-4f75-ad8e-14cb8c77e2df', 'rel': 'bookmark'}]}, {'uuid': '57b11470-f2df-4a1a-9456-51783a9b8517', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': 'bbb4d085-249a-4dd5-a6e1-809bd4366c57', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/57b11470-f2df-4a1a-9456-51783a9b8517', 'rel': 'self'}, {'href': 'http://localhost/nodes/57b11470-f2df-4a1a-9456-51783a9b8517', 'rel': 'bookmark'}]}, {'uuid': '0bc8520f-b594-4134-ab44-1f2dd04f9477', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': 'ee255983-710e-4f09-8fe2-f43d39359611', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/0bc8520f-b594-4134-ab44-1f2dd04f9477', 'rel': 'self'}, {'href': 'http://localhost/nodes/0bc8520f-b594-4134-ab44-1f2dd04f9477', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?fields=name&limit=2 {} -GOT:{'nodes': [{'name': None, 'links': [{'href': 'http://localhost/v1/nodes/0f697075-2104-4616-9abc-cdfe6fb69a1e', 'rel': 'self'}, {'href': 'http://localhost/nodes/0f697075-2104-4616-9abc-cdfe6fb69a1e', 'rel': 'bookmark'}]}, {'name': None, 'links': [{'href': 'http://localhost/v1/nodes/fdf170f5-5330-46a8-9581-a1caf7bccf93', 'rel': 'self'}, {'href': 'http://localhost/nodes/fdf170f5-5330-46a8-9581-a1caf7bccf93', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=fdf170f5-5330-46a8-9581-a1caf7bccf93'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor {} -GOT:{'links': [{'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'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor {} -GOT:Response: 406 Not Acceptable +{"uuid": "df131a00-b637-47b5-be20-f0403efc1664", "created_at": "2024-01-06T15:33:17.969080+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/df131a00-b637-47b5-be20-f0403efc1664", "rel": "self"}, {"href": "http://localhost/nodes/df131a00-b637-47b5-be20-f0403efc1664", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/df131a00-b637-47b5-be20-f0403efc1664/ports", "rel": "self"}, {"href": "http://localhost/nodes/df131a00-b637-47b5-be20-f0403efc1664/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/df131a00-b637-47b5-be20-f0403efc1664/states", "rel": "self"}, {"href": "http://localhost/nodes/df131a00-b637-47b5-be20-f0403efc1664/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/df131a00-b637-47b5-be20-f0403efc1664/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/df131a00-b637-47b5-be20-f0403efc1664/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/df131a00-b637-47b5-be20-f0403efc1664/volume", "rel": "self"}, {"href": "http://localhost/nodes/df131a00-b637-47b5-be20-f0403efc1664/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/c70d08b3-a56a-41fb-84dc-6219b39afbf6 [{'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-dad6adae-3075-4171-a907-c634d404f300 +Openstack-Request-Id: req-b6edd9d9-9ed3-436f-b036-03e4bffc36d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} -GOT:{'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'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "c70d08b3-a56a-41fb-84dc-6219b39afbf6", "created_at": "2024-01-06T15:33:18.998878+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/c70d08b3-a56a-41fb-84dc-6219b39afbf6", "rel": "self"}, {"href": "http://localhost/nodes/c70d08b3-a56a-41fb-84dc-6219b39afbf6", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c70d08b3-a56a-41fb-84dc-6219b39afbf6/ports", "rel": "self"}, {"href": "http://localhost/nodes/c70d08b3-a56a-41fb-84dc-6219b39afbf6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c70d08b3-a56a-41fb-84dc-6219b39afbf6/states", "rel": "self"}, {"href": "http://localhost/nodes/c70d08b3-a56a-41fb-84dc-6219b39afbf6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c70d08b3-a56a-41fb-84dc-6219b39afbf6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c70d08b3-a56a-41fb-84dc-6219b39afbf6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c70d08b3-a56a-41fb-84dc-6219b39afbf6/volume", "rel": "self"}, {"href": "http://localhost/nodes/c70d08b3-a56a-41fb-84dc-6219b39afbf6/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/2dfc1312-335e-4c25-bc10-68646cc3bf22 [{'path': '/description', 'value': 'foo', 'op': 'replace'}, {'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key ... ok +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name ... ok +ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_not_authenticated +ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_not_authenticated ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver ... ok +GOT:{'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 {} +GOT:{'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 {} +GOT:{'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?detail=True {} +GOT:{'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_console_interface': None, 'enabled_console_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['ansible', 'direct']}, {'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_console_interface': None, 'enabled_console_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_deploy_interface': None, 'enabled_deploy_interfaces': []}]} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'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 {} +GOT:{'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 {} +GOT:{'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 {} +GOT:{'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?detail=True {} +GOT:{'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_console_interface': None, 'enabled_console_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['ansible', 'direct'], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_storage_interface': None, 'enabled_storage_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_console_interface': None, 'enabled_console_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_deploy_interface': None, 'enabled_deploy_interfaces': [], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_storage_interface': None, 'enabled_storage_interfaces': []}]} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'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 {} +GOT:{'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 {} +GOT:{'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 {} +GOT:{'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?fields=name,hosts {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-3a1b72db-afe3-476b-8361-3579f95ff728 +Openstack-Request-Id: req-442b451f-7827-4280-9b17-c695cb43da22 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.45 +X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} -GET: /v1/nodes/spam/states/console {} -GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:{'console_enabled': False, 'console_info': None} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:Response: 400 Bad Request +GET: /v1/drivers/fake-hardware-type?fields=name,hosts {} +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_extra +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_extra ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields ... ok +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association ... ok +ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume +ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume ... ok +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_custom_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_custom_fields_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver ... ok +ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_public_unauthenticated +ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_public_unauthenticated ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_018_nodes_node_ident_patch_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_018_nodes_node_ident_patch_member ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid ... ok +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver ... ok +ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version ... ok +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface_instance_info_override +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface_instance_info_override ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail ... ok +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_instance_info +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_instance_info ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_invalid_custom_fields +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_invalid_custom_fields ... ok +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces ... ok +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:19.273660+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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/?limit=3&associated=True {} +GOT:{'nodes': [{'uuid': '3427c436-6f83-40d6-ae3b-9bcc3bc53e67', 'instance_uuid': '9f70387a-f336-42b6-b93d-47f7e2f2f5bb', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/3427c436-6f83-40d6-ae3b-9bcc3bc53e67', 'rel': 'self'}, {'href': 'http://localhost/nodes/3427c436-6f83-40d6-ae3b-9bcc3bc53e67', 'rel': 'bookmark'}]}, {'uuid': '4944aa8c-a6f1-420d-99d8-f9a54249aae3', 'instance_uuid': '2e28f10f-975f-4748-83e5-e400634c9bc2', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/4944aa8c-a6f1-420d-99d8-f9a54249aae3', 'rel': 'self'}, {'href': 'http://localhost/nodes/4944aa8c-a6f1-420d-99d8-f9a54249aae3', 'rel': 'bookmark'}]}, {'uuid': '2cf8d0c7-4be7-4153-a443-ce2c90702317', 'instance_uuid': 'e08c2662-b232-4001-845f-5789d64455fa', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/2cf8d0c7-4be7-4153-a443-ce2c90702317', 'rel': 'self'}, {'href': 'http://localhost/nodes/2cf8d0c7-4be7-4153-a443-ce2c90702317', '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=2cf8d0c7-4be7-4153-a443-ce2c90702317'} +GET: /v1/nodes/detail?limit=3&associated=true {} +GOT:{'nodes': [{'uuid': '290d0bd7-b874-42f0-8366-492550da8b4e', 'created_at': '2024-01-06T15:33:22.951040+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': 'e3251fa7-713e-4f32-bffb-05bf5cb2470c', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/290d0bd7-b874-42f0-8366-492550da8b4e', 'rel': 'self'}, {'href': 'http://localhost/nodes/290d0bd7-b874-42f0-8366-492550da8b4e', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/290d0bd7-b874-42f0-8366-492550da8b4e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/290d0bd7-b874-42f0-8366-492550da8b4e/ports', 'rel': 'bookmark'}]}, {'uuid': '443e405e-c78d-41c7-ae27-b16d3bd31aa4', 'created_at': '2024-01-06T15:33:22.954907+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': 'da9b2850-838a-4af7-9683-ed6b7f966275', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/443e405e-c78d-41c7-ae27-b16d3bd31aa4', 'rel': 'self'}, {'href': 'http://localhost/nodes/443e405e-c78d-41c7-ae27-b16d3bd31aa4', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/443e405e-c78d-41c7-ae27-b16d3bd31aa4/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/443e405e-c78d-41c7-ae27-b16d3bd31aa4/ports', 'rel': 'bookmark'}]}, {'uuid': '351d8218-86ae-496d-a788-13ed8e70b660', 'created_at': '2024-01-06T15:33:22.959096+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': 'f00844ee-b96c-4c65-b44a-6b26894b7a5b', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/351d8218-86ae-496d-a788-13ed8e70b660', 'rel': 'self'}, {'href': 'http://localhost/nodes/351d8218-86ae-496d-a788-13ed8e70b660', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/351d8218-86ae-496d-a788-13ed8e70b660/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/351d8218-86ae-496d-a788-13ed8e70b660/ports', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=351d8218-86ae-496d-a788-13ed8e70b660'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-eff8e0b8-3dc7-4f3a-acbe-74c22ae8877e +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-348bd911-9585-4763-a91b-939f0e515f20 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,extra {} -GOT:Response: 406 Not Acceptable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:18.674829+00:00", "updated_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", "cpus": "8", "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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -Openstack-Request-Id: req-919fd114-32b7-4fb5-bb4f-bd7df14605c8 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-8da5be48-0b1f-428c-9f0b-cc8bc5a09721 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,spongebob {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-6ba5dcaf-07eb-42aa-bb9f-f85d944e87cf -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field spongebob is not a valid field.\", \"debuginfo\": null}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=description {} -GOT:{'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'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system {} -GOT:{'state': 'on'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system {} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:20.870712+00:00", "updated_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", "cpus": "8", "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:20.870712+00:00', 'updated_at': None, 'clean_step': {}, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': 'flat', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, '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'}]} +POST: /v1/nodes {'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', 'cpus': '8', '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-81db6266-c9d7-4428-8af8-4e2b0222e3c1 +Openstack-Request-Id: req-0ce8c287-bb16-40ad-9f64-f793f16875c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system {} -GOT:{'state': 'on'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=lessee {} -GOT:{'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'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group ... ok -fake-hardware -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: 'driver' is a required property\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'owner': 'cowsay', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_019_nodes_node_ident_patch_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_019_nodes_node_ident_patch_observer ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3a4bef31-d90f-4c00-8e3f-bf3ba70ba5c5 +Openstack-Request-Id: req-18b4ec00-15fb-437d-a8b6-4dd9d9dd49cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:05.825931+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": 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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found +{"uuid": "2dfc1312-335e-4c25-bc10-68646cc3bf22", "created_at": "2024-01-06T15:33:20.936690+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/2dfc1312-335e-4c25-bc10-68646cc3bf22", "rel": "self"}, {"href": "http://localhost/nodes/2dfc1312-335e-4c25-bc10-68646cc3bf22", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2dfc1312-335e-4c25-bc10-68646cc3bf22/ports", "rel": "self"}, {"href": "http://localhost/nodes/2dfc1312-335e-4c25-bc10-68646cc3bf22/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2dfc1312-335e-4c25-bc10-68646cc3bf22/states", "rel": "self"}, {"href": "http://localhost/nodes/2dfc1312-335e-4c25-bc10-68646cc3bf22/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2dfc1312-335e-4c25-bc10-68646cc3bf22/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2dfc1312-335e-4c25-bc10-68646cc3bf22/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2dfc1312-335e-4c25-bc10-68646cc3bf22/volume", "rel": "self"}, {"href": "http://localhost/nodes/2dfc1312-335e-4c25-bc10-68646cc3bf22/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/b70d5bfe-4e0e-40d4-afc8-b64b260ba313 [{'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-1f5ed035-e0ee-4a23-8633-944b77d0ac28 +Openstack-Request-Id: req-e9de7019-e6d9-4231-be3f-80decafd7478 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"uuid": "b70d5bfe-4e0e-40d4-afc8-b64b260ba313", "created_at": "2024-01-06T15:33:22.836807+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/b70d5bfe-4e0e-40d4-afc8-b64b260ba313", "rel": "self"}, {"href": "http://localhost/nodes/b70d5bfe-4e0e-40d4-afc8-b64b260ba313", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b70d5bfe-4e0e-40d4-afc8-b64b260ba313/ports", "rel": "self"}, {"href": "http://localhost/nodes/b70d5bfe-4e0e-40d4-afc8-b64b260ba313/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b70d5bfe-4e0e-40d4-afc8-b64b260ba313/states", "rel": "self"}, {"href": "http://localhost/nodes/b70d5bfe-4e0e-40d4-afc8-b64b260ba313/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b70d5bfe-4e0e-40d4-afc8-b64b260ba313/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b70d5bfe-4e0e-40d4-afc8-b64b260ba313/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b70d5bfe-4e0e-40d4-afc8-b64b260ba313/volume", "rel": "self"}, {"href": "http://localhost/nodes/b70d5bfe-4e0e-40d4-afc8-b64b260ba313/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/5a549187-aaa1-4a39-b256-671bdc9e9147 [{'path': '/description', 'value': 'foo', 'op': 'replace'}, {'path': '/extra/foo', 'value': 'bar', 'op': 'add'}, {'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_default_noop +ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_default_noop ... ok +GOT:{'chassis': [{'uuid': '122e8f15-91c2-4415-ab29-18b5d6e32692', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/122e8f15-91c2-4415-ab29-18b5d6e32692', 'rel': 'self'}, {'href': 'http://localhost/chassis/122e8f15-91c2-4415-ab29-18b5d6e32692', 'rel': 'bookmark'}]}, {'uuid': 'fe6707d5-6f44-4c11-8c54-6254052b9f44', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/fe6707d5-6f44-4c11-8c54-6254052b9f44', 'rel': 'self'}, {'href': 'http://localhost/chassis/fe6707d5-6f44-4c11-8c54-6254052b9f44', 'rel': 'bookmark'}]}, {'uuid': '7b820e49-5b32-4459-b581-8afb590d0318', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/7b820e49-5b32-4459-b581-8afb590d0318', 'rel': 'self'}, {'href': 'http://localhost/chassis/7b820e49-5b32-4459-b581-8afb590d0318', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=7b820e49-5b32-4459-b581-8afb590d0318'} +GET: /v1/chassis {} +GOT:{'chassis': [{'uuid': 'facd4f43-45a5-479b-8bbd-9926e185bfca', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/facd4f43-45a5-479b-8bbd-9926e185bfca', 'rel': 'self'}, {'href': 'http://localhost/chassis/facd4f43-45a5-479b-8bbd-9926e185bfca', 'rel': 'bookmark'}]}, {'uuid': '63221959-23b4-4111-91c8-0109fa84b682', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/63221959-23b4-4111-91c8-0109fa84b682', 'rel': 'self'}, {'href': 'http://localhost/chassis/63221959-23b4-4111-91c8-0109fa84b682', 'rel': 'bookmark'}]}, {'uuid': 'ab72d2ac-47d7-44b8-9fd3-ecf96e7037bc', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/ab72d2ac-47d7-44b8-9fd3-ecf96e7037bc', 'rel': 'self'}, {'href': 'http://localhost/chassis/ab72d2ac-47d7-44b8-9fd3-ecf96e7037bc', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=ab72d2ac-47d7-44b8-9fd3-ecf96e7037bc'} +GET: /v1/chassis/detail {} +GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2024-01-06T15:33:16.493938+00:00', 'updated_at': None, '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/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1f5ed035-e0ee-4a23-8633-944b77d0ac28 +Openstack-Request-Id: req-69ee8659-fc22-471e-b053-f01e4d944600 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get / -GET: / {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-4f779748-dd9c-414b-b921-d6307b369faf -{"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.80"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.80"}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-4f779748-dd9c-414b-b921-d6307b369faf -{"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.80"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.80"}]} -API ACL Testing Path get /v1 -GET: /v1 {} -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/chassis?detail=True {} +GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2024-01-06T15:33:17.453490+00:00', 'updated_at': None, '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 {} +GOT:{'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 {} +GOT:{'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=True&fields=description {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d527433f-527b-4d14-92af-78a050084f56 +Openstack-Request-Id: req-e11c028b-d0eb-46e0-be36-f983c1116ea8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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.80"}, "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"}]} -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_6_public_api_v1 -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_6_public_api_v1 ... ok -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_7_public_api_v1_slash -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_7_public_api_v1_slash ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_source_path -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_source_path ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured ... ok -GOT:{'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'}]}]} -GET: /v1/portgroups?detail=True {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} +GET: /v1/chassis?detail=False&fields=description {} +GOT:{'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'}]}]} +GET: /v1/chassis?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-97f3150f-d18c-4968-8817-96cdf95f97e6 +Openstack-Request-Id: req-66e140e8-9d0d-4202-b1eb-f6e1c2795353 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.42 +X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} -GET: /v1/portgroups {} -GOT:{'portgroups': []} -GET: /v1/portgroups?node=test-node {} -GOT:{'portgroups': [{'uuid': 'bd8537c1-7586-493f-8f73-4df8504f1b28', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/bd8537c1-7586-493f-8f73-4df8504f1b28', 'rel': 'self'}, {'href': 'http://localhost/portgroups/bd8537c1-7586-493f-8f73-4df8504f1b28', 'rel': 'bookmark'}]}, {'uuid': '2154f2cb-d292-4536-8daa-09de31bf9abb', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/2154f2cb-d292-4536-8daa-09de31bf9abb', 'rel': 'self'}, {'href': 'http://localhost/portgroups/2154f2cb-d292-4536-8daa-09de31bf9abb', 'rel': 'bookmark'}]}, {'uuid': '3db7d497-568f-40b7-8e13-b9f75cee8800', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/3db7d497-568f-40b7-8e13-b9f75cee8800', 'rel': 'self'}, {'href': 'http://localhost/portgroups/3db7d497-568f-40b7-8e13-b9f75cee8800', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups/detail?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T21:28:08.179936+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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/ports {} -GOT:{'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/portgroups?fields=uuid,extra {} -GOT:{'portgroups': [{'uuid': 'a4eb8630-0d80-43d0-a2ef-ff92d4e6898c', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/a4eb8630-0d80-43d0-a2ef-ff92d4e6898c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/a4eb8630-0d80-43d0-a2ef-ff92d4e6898c', 'rel': 'bookmark'}]}, {'uuid': '8209b373-75b4-42c0-99bd-678882680441', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/8209b373-75b4-42c0-99bd-678882680441', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8209b373-75b4-42c0-99bd-678882680441', 'rel': 'bookmark'}]}, {'uuid': 'd66522fa-8300-4ab7-a672-6f11bf8c791e', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/d66522fa-8300-4ab7-a672-6f11bf8c791e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d66522fa-8300-4ab7-a672-6f11bf8c791e', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups?fields=address&limit=2 {} -GOT:{'portgroups': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/548e720a-ae21-4b45-b071-15a1dbf680cb', 'rel': 'self'}, {'href': 'http://localhost/portgroups/548e720a-ae21-4b45-b071-15a1dbf680cb', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/2e0090d6-2cc4-4766-80f2-2300c01718d7', 'rel': 'self'}, {'href': 'http://localhost/portgroups/2e0090d6-2cc4-4766-80f2-2300c01718d7', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=2e0090d6-2cc4-4766-80f2-2300c01718d7'} -GET: /v1/portgroups/?fields=address,properties {} +GET: /v1/chassis {} +GOT:{'chassis': []} +GET: /v1/chassis?fields=uuid,extra {} +GOT:{'chassis': [{'uuid': '5cbdb8e0-f69e-4a8e-a1f3-508831c5efe0', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/5cbdb8e0-f69e-4a8e-a1f3-508831c5efe0', 'rel': 'self'}, {'href': 'http://localhost/chassis/5cbdb8e0-f69e-4a8e-a1f3-508831c5efe0', 'rel': 'bookmark'}]}, {'uuid': '065e31ce-416f-485e-93f6-c9a5fec1840f', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/065e31ce-416f-485e-93f6-c9a5fec1840f', 'rel': 'self'}, {'href': 'http://localhost/chassis/065e31ce-416f-485e-93f6-c9a5fec1840f', 'rel': 'bookmark'}]}, {'uuid': 'f01b5ed5-1120-41cb-9637-1b49c0129e93', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/f01b5ed5-1120-41cb-9637-1b49c0129e93', 'rel': 'self'}, {'href': 'http://localhost/chassis/f01b5ed5-1120-41cb-9637-1b49c0129e93', 'rel': 'bookmark'}]}]} +GET: /v1/chassis?fields=extra&limit=2 {} +GOT:{'chassis': [{'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/d3f24075-c5e0-43d0-be75-31476a36eef3', 'rel': 'self'}, {'href': 'http://localhost/chassis/d3f24075-c5e0-43d0-be75-31476a36eef3', 'rel': 'bookmark'}]}, {'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e661f885-ff74-4691-ac1e-1375a6079257', 'rel': 'self'}, {'href': 'http://localhost/chassis/e661f885-ff74-4691-ac1e-1375a6079257', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=e661f885-ff74-4691-ac1e-1375a6079257'} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-ace3bca2-4200-452c-ac69-b8bd8612f19e +Openstack-Request-Id: req-2b1f134a-d936-42a1-be76-d69235ba1c6e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.25 +X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=uuid,spongebob {} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-fa44d41a-d67c-461e-a3d6-f483f5723a5d +Openstack-Request-Id: req-60642638-fc91-40d4-8444-d34415f036eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T21:28:09.589642+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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?fields=address,extra {} -GOT:{'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'}]} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,mode {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-68357c92-f6bc-46e6-8532-bdc784016dab -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4.json {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T21:28:10.527013+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {} -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config_not_anaconda_boot -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config_not_anaconda_boot ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config ... ok -GOT:Response: 200 OK +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id ... ok +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_network_interface_instance_info_override +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_network_interface_instance_info_override ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_extra_instance_info +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_extra_instance_info ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_no_source +ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_no_source ... ok +GOT:{'allocations': [{'uuid': '5488bc70-5013-4fa1-bd2a-daa73a3bfde6', 'created_at': '2024-01-06T15:33:21.110106+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation0', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/5488bc70-5013-4fa1-bd2a-daa73a3bfde6', 'rel': 'self'}, {'href': 'http://localhost/allocations/5488bc70-5013-4fa1-bd2a-daa73a3bfde6', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'dd27eba0-080c-40d7-8435-424b666b9114', 'created_at': '2024-01-06T15:33:21.111788+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/dd27eba0-080c-40d7-8435-424b666b9114', 'rel': 'self'}, {'href': 'http://localhost/allocations/dd27eba0-080c-40d7-8435-424b666b9114', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'e91bc0c4-bc9d-47c7-8d77-bc87464cad44', 'created_at': '2024-01-06T15:33:21.117506+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/e91bc0c4-bc9d-47c7-8d77-bc87464cad44', 'rel': 'self'}, {'href': 'http://localhost/allocations/e91bc0c4-bc9d-47c7-8d77-bc87464cad44', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/allocations?sort_key=name {} +GOT:{'allocations': [{'uuid': '5ff7152c-7255-4586-9711-f04db23ce594', 'created_at': '2024-01-06T15:33:22.234993+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation1', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/5ff7152c-7255-4586-9711-f04db23ce594', 'rel': 'self'}, {'href': 'http://localhost/allocations/5ff7152c-7255-4586-9711-f04db23ce594', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '3294e3d1-1fbf-41fd-9b7a-dc511edadbd6', 'created_at': '2024-01-06T15:33:22.232870+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation2', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/3294e3d1-1fbf-41fd-9b7a-dc511edadbd6', 'rel': 'self'}, {'href': 'http://localhost/allocations/3294e3d1-1fbf-41fd-9b7a-dc511edadbd6', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '0eb7b9fe-5367-4a7c-9a40-1529f397d61f', 'created_at': '2024-01-06T15:33:22.222540+00:00', 'updated_at': None, 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': 'allocation3', 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/0eb7b9fe-5367-4a7c-9a40-1529f397d61f', 'rel': 'self'}, {'href': 'http://localhost/allocations/0eb7b9fe-5367-4a7c-9a40-1529f397d61f', 'rel': 'bookmark'}], 'node_uuid': None}]} +GET: /v1/allocations?sort_key=foo {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a76cb2db-fdb1-419d-b231-421ec2144aea +Openstack-Request-Id: req-809d5bb5-c61b-4bf4-8306-ef31778e8a7a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:05.084337+00:00", "updated_at": "2025-02-07T21:28:05.090742+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"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/allocations?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-12bb5d39-40db-40f9-9baa-800f1c001caf +Openstack-Request-Id: req-da7ad83b-1b1f-4eeb-8973-6f8789928c57 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] -GOT:Response: 200 OK +{"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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-4100d0fb-9797-4aab-b79f-1370f70ff6cc +Openstack-Request-Id: req-815f602e-e503-418e-93dc-57f45b17778b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:05.694129+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"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] +{"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 {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1b7b34b6-750e-4a14-897d-d0d8eb8cbe22 +Openstack-Request-Id: req-9d31f5e8-8f13-4215-a0b1-9437695562ce X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"properties\\\" is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/deploy_templates/?limit=3 {} +GOT:{'deploy_templates': [{'uuid': '7d9f1b59-96f2-4611-81a9-95de15c9a446', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/7d9f1b59-96f2-4611-81a9-95de15c9a446', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7d9f1b59-96f2-4611-81a9-95de15c9a446', 'rel': 'bookmark'}]}, {'uuid': '4b25498f-6257-4aef-8e44-cd15c4347f63', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/4b25498f-6257-4aef-8e44-cd15c4347f63', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4b25498f-6257-4aef-8e44-cd15c4347f63', 'rel': 'bookmark'}]}, {'uuid': '3e03f114-4841-4b50-b92f-0f031f940f80', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/3e03f114-4841-4b50-b92f-0f031f940f80', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3e03f114-4841-4b50-b92f-0f031f940f80', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=3e03f114-4841-4b50-b92f-0f031f940f80'} +GET: /v1/deploy_templates?fields=uuid,steps {} +GOT:{'deploy_templates': [{'uuid': 'cdaf3896-da5a-4442-96b4-1ddd53875b71', 'links': [{'href': 'http://localhost/v1/deploy_templates/cdaf3896-da5a-4442-96b4-1ddd53875b71', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/cdaf3896-da5a-4442-96b4-1ddd53875b71', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': 'cb4840b9-51be-47df-8103-3b908fceb391', 'links': [{'href': 'http://localhost/v1/deploy_templates/cb4840b9-51be-47df-8103-3b908fceb391', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/cb4840b9-51be-47df-8103-3b908fceb391', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '9adad60c-5e9a-44e9-992d-8c0cbdb4bbc2', 'links': [{'href': 'http://localhost/v1/deploy_templates/9adad60c-5e9a-44e9-992d-8c0cbdb4bbc2', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/9adad60c-5e9a-44e9-992d-8c0cbdb4bbc2', '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=9adad60c-5e9a-44e9-992d-8c0cbdb4bbc2'} +GET: /v1/deploy_templates {} +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit ... ok +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_raises_exception_with_absolute_path +ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_raises_exception_with_absolute_path ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_020_nodes_node_ident_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_020_nodes_node_ident_delete_admin ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_instance_info +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_instance_info ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files +ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files ... ok GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-9919b5f0-9c5b-48ca-a461-47148a3233f9 +Openstack-Request-Id: req-687e3c38-1ded-4a85-a8d6-895b9d935cf0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.67 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_verify_ca\\\" not recognised in this version\", \"debuginfo\": null}"} +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c422a4f4-5596-4384-b4bf-f28793a48a05 +Openstack-Request-Id: req-060f57ca-b4ad-416f-bfbb-bd20d98d2ec3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:06.561456+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"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.35 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_version\\\" not recognised\", \"debuginfo\": null}"} +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'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-000caa44-e33e-432c-8d90-2a17bc7d6aea +Openstack-Request-Id: req-9d414299-ea13-4566-a98f-d97138457731 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:06.835358+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"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -PATCH: /v1/volume/targets/695f7afb-3855-4b79-a52b-4f651bd12905 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.71 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fields \\\"agent_status\\\" and \\\"agent_status_message\\\" not recognised.\", \"debuginfo\": null}"} +POST: /v1/heartbeat/fdc6867c-3952-472c-8e92-ca8c3975afb1 {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2bb159d6-7919-4352-9650-508a87e5bcef +Openstack-Request-Id: req-f6935835-b5ba-4018-9202-a04b30306163 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 695f7afb-3855-4b79-a52b-4f651bd12905 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 503 Service Unavailable +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/volume/ {} +GOT:{'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/ {} +GOT:{'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/ {} +GOT:{'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 {} +GOT:{'connectors': []} +GET: /volume/connectors {} +GOT:{'connectors': []} +GET: /v1/volume/targets {} +GOT:{'targets': []} +GET: /volume/targets {} +GOT:{'targets': []} +GET: /v1/volume/ {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-35e9d73b-f206-4a03-9dc6-15cbf00afa2d +Openstack-Request-Id: req-0ea41bb0-6e6a-4d4e-b1f7-893cf264b5ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +POST: /v1/volume/targets {'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 -Openstack-Request-Id: req-35e9d73b-f206-4a03-9dc6-15cbf00afa2d +Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-8a8b2107-bb87-4f24-a170-4964e86518d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 403 Forbidden +{"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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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'} +POST: /v1/volume/targets {'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 -Openstack-Request-Id: req-e490b4f3-3565-4af2-9337-3a4c5db40473 +Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-b789d6f7-9353-41c8-9bca-a1e09118a82b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:23.995022+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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:33:23.995022+00:00', 'updated_at': None, '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'} +POST: /v1/volume/targets {'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-e490b4f3-3565-4af2-9337-3a4c5db40473 +Openstack-Request-Id: req-594475b0-8acb-4c26-8ddc-288be52b90fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_004_nodes_post_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_004_nodes_post_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_005_nodes_get_node_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_005_nodes_get_node_admin ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_bios -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_bios ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_has_additional_variables -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_has_additional_variables ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down ... ok -GOT:{'bios': [{'created_at': '2025-02-07T21:28:05.520970+00:00', 'updated_at': None, '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'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?fields=name,read_only {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +POST: /v1/volume/targets {'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:23.658658+00:00', 'updated_at': None, 'automated_clean': False, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:24.374142+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:24.374142+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links ... ok +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_chmod +ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_chmod ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-a334e218-43c4-4de8-b818-948c998b3293 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-94e85120-2cef-483c-be52-9f72530bfed3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} -GOT:{'virtualization': {'created_at': '2025-02-07T21:28:06.043465+00:00', 'updated_at': None, 'name': 'virtualization', 'value': 'on', 'attribute_type': 'Enumeration', 'allowable_values': ['on', 'off'], 'lower_bound': None, 'max_length': None, 'min_length': None, 'read_only': False, 'reset_required': True, 'unique': False, 'upper_bound': None, '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'}]}} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/fake_setting {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:23.815252+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": "cowsay", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "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, "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:23.815252+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': 'cowsay', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-3f13b6a6-bcfa-485e-b3e5-b678a787fc64 +Openstack-Request-Id: req-a6dd0275-59e1-4b06-aa06-72c855ebc55c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} -GOT:{'virtualization': {'created_at': '2025-02-07T21:28:06.834937+00:00', 'updated_at': None, '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'}]}} -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'meow', 'agent_status': 'invalid_state', 'agent_status_message': 'woof', 'agent_verify_ca': 'abcdef1'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.32 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure ... ok +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7006df70-91ab-43cd-9ffd-3d4c80e26449 +Openstack-Request-Id: req-9b0b3b3c-e185-4d0b-8d89-d200a476b61a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"} -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url2'} -GOT:Response: 400 Bad Request +{"uuid": "5a549187-aaa1-4a39-b256-671bdc9e9147", "created_at": "2024-01-06T15:33:23.796168+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/5a549187-aaa1-4a39-b256-671bdc9e9147", "rel": "self"}, {"href": "http://localhost/nodes/5a549187-aaa1-4a39-b256-671bdc9e9147", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5a549187-aaa1-4a39-b256-671bdc9e9147/ports", "rel": "self"}, {"href": "http://localhost/nodes/5a549187-aaa1-4a39-b256-671bdc9e9147/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5a549187-aaa1-4a39-b256-671bdc9e9147/states", "rel": "self"}, {"href": "http://localhost/nodes/5a549187-aaa1-4a39-b256-671bdc9e9147/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5a549187-aaa1-4a39-b256-671bdc9e9147/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5a549187-aaa1-4a39-b256-671bdc9e9147/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5a549187-aaa1-4a39-b256-671bdc9e9147/volume", "rel": "self"}, {"href": "http://localhost/nodes/5a549187-aaa1-4a39-b256-671bdc9e9147/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/48fba267-3af8-4c0a-839a-27c5eafb9a15 [{'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-985276f7-9943-4908-8441-9ff064a795ba +Openstack-Request-Id: req-d64bd38b-4df9-4c72-a3e9-66608a06f2dd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"} -POST: /v1/heartbeat/f6ba8503-7ae5-4845-ae6c-82d359bb78d0 {'callback_url': 'url'} +{"uuid": "48fba267-3af8-4c0a-839a-27c5eafb9a15", "created_at": "2024-01-06T15:33:24.587735+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/48fba267-3af8-4c0a-839a-27c5eafb9a15", "rel": "self"}, {"href": "http://localhost/nodes/48fba267-3af8-4c0a-839a-27c5eafb9a15", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/48fba267-3af8-4c0a-839a-27c5eafb9a15/ports", "rel": "self"}, {"href": "http://localhost/nodes/48fba267-3af8-4c0a-839a-27c5eafb9a15/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/48fba267-3af8-4c0a-839a-27c5eafb9a15/states", "rel": "self"}, {"href": "http://localhost/nodes/48fba267-3af8-4c0a-839a-27c5eafb9a15/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/48fba267-3af8-4c0a-839a-27c5eafb9a15/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/48fba267-3af8-4c0a-839a-27c5eafb9a15/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/48fba267-3af8-4c0a-839a-27c5eafb9a15/volume", "rel": "self"}, {"href": "http://localhost/nodes/48fba267-3af8-4c0a-839a-27c5eafb9a15/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/907b8762-4bfe-458c-8d3a-a20e3c46aa1e [] +ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_copy +ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_copy ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_recorded_project_scope +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_recorded_project_scope ... ok +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-76f2ddad-d464-4ffe-b260-ee7d66da815e -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node f6ba8503-7ae5-4845-ae6c-82d359bb78d0 could not be found.\", \"debuginfo\": null}"} -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'x'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-46977414-c5bb-418d-a24a-c0511921462c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'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-a3c90ee3-bb53-49be-b63a-74437ab3fa5c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'abcdef1'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-9a978699-c137-48c3-9929-94d4078a71b2 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'meow', 'agent_verify_ca': 'abcdef1'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-4d715340-cc21-4bfe-811d-d2d7c794a668 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1', 'agent_token': 'meow'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-33d1fc06-eef3-4192-b65f-9d328b4a282e +Openstack-Request-Id: req-54c8206f-6e96-4807-93e1-cb8e1d27d9d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 - -POST: /v1/heartbeat/test.1 {'callback_url': 'url', 'agent_token': 'token'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-79784e5b-61a2-4b37-ba20-bea19d95c87b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {'callback_url': 'url', 'agent_token': 'maybe some magic'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-6f2f2b7b-1c94-4310-9f43-f7f07f02b056 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'meow', 'agent_verify_ca': 'abcd'} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0e7b0efc-470e-4131-b880-d752dd9a9de6 +Openstack-Request-Id: req-3002b974-8771-4dcb-b7ce-a14621b63de8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5f1877fc-50f3-46d4-afa5-77a8c52538b8 +Openstack-Request-Id: req-53945ff3-a66d-4315-b1bc-fb26fdd6645f X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_token': 'meow', 'agent_verify_ca': 'abcd', 'agent_status': 'wow', 'agent_status_message': 'much status'} -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_agent_status_error -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_agent_status_error ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_version -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_fast_deploy_lookup -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_fast_deploy_lookup ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_addresses -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_addresses ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_only_uuid -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_only_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_uuid -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_ignore_malformed_address -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_ignore_malformed_address ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_missing_variable -ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_missing_variable ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6_bios -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6_bios ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_fallback_ipxe_boot_script -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_fallback_ipxe_boot_script ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info ... ok -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:06.284209+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}]} -GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:06.539912+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}]} -GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4&node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1efa258e-1052-446a-9143-3d4e8e3a7d47 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:07.029810+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}]} -GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'ports': []} -GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-09206f0b-3404-461d-877c-2d2e855660d0 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/ports?fields=uuid,extra {} -GOT:{'ports': [{'uuid': 'deb5befe-cc3c-408b-8de7-fde06193e6f8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/deb5befe-cc3c-408b-8de7-fde06193e6f8', 'rel': 'self'}, {'href': 'http://localhost/ports/deb5befe-cc3c-408b-8de7-fde06193e6f8', 'rel': 'bookmark'}]}, {'uuid': '67dc0e4d-0814-4eec-8b12-b3c8b7ba87e2', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/67dc0e4d-0814-4eec-8b12-b3c8b7ba87e2', 'rel': 'self'}, {'href': 'http://localhost/ports/67dc0e4d-0814-4eec-8b12-b3c8b7ba87e2', 'rel': 'bookmark'}]}, {'uuid': '049c2037-c6d6-4ecf-9efe-46a5bb5e0880', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/049c2037-c6d6-4ecf-9efe-46a5bb5e0880', 'rel': 'self'}, {'href': 'http://localhost/ports/049c2037-c6d6-4ecf-9efe-46a5bb5e0880', 'rel': 'bookmark'}]}]} -GET: /v1/ports?fields=address&limit=2 {} -GOT:{'ports': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/5d71a9c1-acd3-47bd-bc9a-c949495b8287', 'rel': 'self'}, {'href': 'http://localhost/ports/5d71a9c1-acd3-47bd-bc9a-c949495b8287', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/0418da15-6581-4a91-8a28-950846454d9d', 'rel': 'self'}, {'href': 'http://localhost/ports/0418da15-6581-4a91-8a28-950846454d9d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=0418da15-6581-4a91-8a28-950846454d9d'} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-97bb1492-f1e6-44a9-95b7-b2e28d3e7c2d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-aab8e555-72ca-41e6-bd3f-2bde260d7cab +Openstack-Request-Id: req-12aec742-532b-4404-859b-2e7e23573e89 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,is_smartnic {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-66bcd77f-7432-47c3-9e51-4d5dfaec55b0 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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 {} -GOT:{'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'}]} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-80d2ad32-5342-460c-8819-2370a115fa5a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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 {} -GOT:{'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'}]} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} -GOT:Response: 406 Not Acceptable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-63a209d9-1004-4fee-821a-6e02a256cb86 +Openstack-Request-Id: req-54c73530-1016-4cbc-9aa3-ee53b65415f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:09.345508+00:00', 'updated_at': None, '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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=address,extra {} -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info ... ok -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe ... ok -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed ... ok -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config ... ok -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config_existing_dirs -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config_existing_dirs ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe_anaconda -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe_anaconda ... ok -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper ... ok -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale ... ok -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_reset_mac -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_reset_mac ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_boot_iso -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_boot_iso ... ok -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property ... ok -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-98118cbf-61b0-4ecd-b375-3db4af34842c +Openstack-Request-Id: req-54c73530-1016-4cbc-9aa3-ee53b65415f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'op': 'remove'}] -GOT:Response: 200 OK +{"nodes": []} +API ACL Testing Path get /v1/nodes/detail +GET: /v1/nodes/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5582c6e4-df52-4bf4-ade2-01a342a88c14 +Openstack-Request-Id: req-9ecfb9ba-e29b-4858-9496-ee57a229b843 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:07.593858+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/mode', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/detail +GET: /v1/nodes/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2919d728-5a0c-449d-9ba8-8c7445834ace +Openstack-Request-Id: req-ada9280e-ec2e-40f6-b1b2-eed710f659b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'mode' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo1', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/detail +GET: /v1/nodes/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6508a10d-2737-40bb-a4cf-0b07f20c68c6 +Openstack-Request-Id: req-f16ed3bf-d9cb-478d-b367-89d9278bda04 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:08.086138+00:00", "updated_at": "2025-02-07T21:28:08.093550+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/extra', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6c7e3e94-f2a6-4024-8a19-2ba36364d734 +Openstack-Request-Id: req-0ced4b03-f8dc-448d-8a42-a1d0fad911d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:08.086138+00:00", "updated_at": "2025-02-07T21:28:08.093550+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/node_id', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ec9308ef-4298-4073-8ff7-89bf6cee7de1 +Openstack-Request-Id: req-586389cb-bfeb-4135-af08-f9593f10419a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/non-existent', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-df68485c-15e8-42d6-87da-3da515e0ca1d +Openstack-Request-Id: req-60d2b675-6d4f-4129-8ce2-7a5c1629d7ab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/uuid', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2736affd-b7fb-48dd-8701-ea043b73b947 +Openstack-Request-Id: req-b416275f-3b52-4792-83f0-3ae4e5f03656 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] -GOT:Response: 409 Conflict +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-231b2340-578a-4cbc-8bdf-89dd7a0198d6 +Openstack-Request-Id: req-296c2385-fac2-48ea-902c-d23071a02d44 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-619ec1fa-703d-4221-9ab2-2fbd238d17da +Openstack-Request-Id: req-c9830b7e-4a88-434f-a9d4-b537b0226dbd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:09.295654+00:00", "updated_at": "2025-02-07T21:28:09.301836+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_kickstart_stage2_missing -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_kickstart_stage2_missing ... ok -ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version -ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version ... ok -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type ... ok -ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema -ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot ... ok -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-eadf154c-1d52-4305-bfb2-4be1b8480f73 +Openstack-Request-Id: req-0324625f-b27a-4fb9-b3d6-2ea3f5154e6c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: None is not of type 'string'\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/9bf7c7a3-6f7a-47a6-bbdb-2fbc70d8ca4f [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_none +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_none ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_021_nodes_node_ident_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_021_nodes_node_ident_delete_member ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_relative_path +ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_relative_path ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached ... ok +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-1c1678e1-06dd-4fcc-9184-1f18990175d0 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-8f8a1d29-2b14-49a8-9ca1-b5368f18c8f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/deploy_templates/072dbbca-e33f-4415-a0e8-9c102dffb12c [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:25.331078+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": "ravensay", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "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, "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:25.331078+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': 'ravensay', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'owner': 'catsay', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:25.000574+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:25.682620+00:00', 'updated_at': None, 'automated_clean': True, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:26.320568+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces +ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource ... ok +ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id +ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_system_scope +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_system_scope ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_022_nodes_node_ident_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_022_nodes_node_ident_delete_observer ... ok +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-b8c3f501-4a87-48de-ab1a-906285355dba +Openstack-Request-Id: req-bf4d7005-3b24-4fa8-bda4-44bb6035d3fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/9ecdb5be-5a72-42ae-ad24-b373e707230f [{'path': '/steps/0', 'op': 'replace', 'value': {'interface': 'foo', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d6d91e9f-9bb1-414e-9577-04fadf6a89da +Openstack-Request-Id: req-1997a25f-1a9e-4e86-9918-6748158639b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['power', 'management', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/16490613-6b52-4a48-ab06-15a147718b17 [{'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'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'address' is a required property\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-46fcff0d-c633-46cd-8fe8-d77a61bc110e +Openstack-Request-Id: req-1e4eebad-06f6-4598-a90f-df6fb1506ae8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "16490613-6b52-4a48-ab06-15a147718b17", "created_at": "2025-02-07T21:28:09.965981+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/16490613-6b52-4a48-ab06-15a147718b17", "rel": "self"}, {"href": "http://localhost/deploy_templates/16490613-6b52-4a48-ab06-15a147718b17", "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}]} -PATCH: /v1/deploy_templates/1447b4df-d435-4c7c-b1b3-dface2fa307d [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:23.122128+00:00", "updated_at": "2024-01-06T15:33:23.171128+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-94e8ac42-24f3-4bba-ae45-c3f66cd07fc4 +Openstack-Request-Id: req-69e5572c-18cc-4bb2-866e-f0c68d71999b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A deploy template with UUID 1447b4df-d435-4c7c-b1b3-dface2fa307d already exists.\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/45221dcd-6d70-4ee5-8ad3-ee5e7dfbc977 [{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:23.122128+00:00", "updated_at": "2024-01-06T15:33:23.213199+00:00", "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"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-69af7075-4e6b-4e60-8aba-8c0c6a15d409 +Openstack-Request-Id: req-30e3beb1-e1cd-47f4-a905-9e1f5876868a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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: can't replace outside of list\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/c9df1e1e-15e0-4687-878b-f2ccfd3111c6 [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] +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\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6eba18f2-b15f-4f49-9772-94e8700cb1dd +Openstack-Request-Id: req-0d8f0db2-314f-4877-b06b-f13347b0c192 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['power', 'management', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} -PATCH: /v1/deploy_templates/098a34f7-2a34-42a9-9b72-97480a2e8221 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] +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 a non-existent object 'non-existent'\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-68ee13ea-5d81-4967-aeaa-fb1e196a34c7 +Openstack-Request-Id: req-9c0221f0-b375-4985-b3a4-ea57c0a9d99f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "098a34f7-2a34-42a9-9b72-97480a2e8221", "created_at": "2025-02-07T21:28:10.968792+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/098a34f7-2a34-42a9-9b72-97480a2e8221", "rel": "self"}, {"href": "http://localhost/deploy_templates/098a34f7-2a34-42a9-9b72-97480a2e8221", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -PATCH: /v1/deploy_templates/d2323e7b-80ef-4713-bd01-83a70369d85d [{'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\"}"} -PATCH: /v1/deploy_templates/CUSTOM_DT1 [{'path': '/steps', 'value': [{'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}], 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.34 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:24.523913+00:00", "updated_at": "2024-01-06T15:33:24.562445+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-ed99d09b-036f-42df-afe9-0f7457c476d2 +Openstack-Request-Id: req-9d90b796-fdb9-4754-aa1d-3f0e9d3f1388 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1ea3c8af-377d-47d1-b261-5239435aca12", "created_at": "2025-02-07T21:28:11.440803+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1ea3c8af-377d-47d1-b261-5239435aca12", "rel": "self"}, {"href": "http://localhost/deploy_templates/1ea3c8af-377d-47d1-b261-5239435aca12", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "priority": 42}]} -PATCH: /v1/deploy_templates/CUSTOM_DT1 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version ... ok -ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_args -ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_args ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait ... ok -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found -ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_does_not_contain_event -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_does_not_contain_event ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_unsupported_api_version -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_unsupported_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_multiple_events -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_multiple_events ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_bind_port_events -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_bind_port_events ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag ... ok -ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_kwargs -ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_kwargs ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image ... ok -ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_mixed -ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_mixed ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume ... ok -ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session -ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_boot_option -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_boot_option ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks ... ok -ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context -ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks ... ok -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.33 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-789f8035-cddf-41b8-8475-cfd34654f33d +Openstack-Request-Id: req-c7d0611a-2830-4459-8724-c77cdb8d98ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.34 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-46672224-628e-4549-8bdd-24bbcf24d66d +Openstack-Request-Id: req-07a2b3c9-69f9-4a5a-9d29-03376d3c80cd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] -GOT:Response: 400 Bad Request +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\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-cdddd751-d59a-480d-89d0-e837a8d2b714 +Openstack-Request-Id: req-1de89bdf-e955-44b8-992a-344a89c485b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] -GOT:Response: 409 Conflict +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}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'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-e06eb090-51ba-4191-9f73-d5ebe8742032 +Openstack-Request-Id: req-307425d8-3132-460b-95f0-e0ffdc06d95b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type None and connector ID test-connector-id-123 already exists.\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.19 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:26.579536+00:00", "updated_at": "2024-01-06T15:33:26.621580+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver ... ok +ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default +ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist ... ok +ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty +ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed ... ok +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2024-01-06T15:33:24.220103+00:00', 'updated_at': None, '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?fields=extra,description {} +GOT:{'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'}]} +GET: /v1/chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92 {} +GOT:{'uuid': '17a5fc53-11a1-45df-829f-c335b1ca9a92', 'created_at': '2024-01-06T15:33:24.976007+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92', 'rel': 'self'}, {'href': 'http://localhost/chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92/nodes', 'rel': 'bookmark'}]]} +GET: /v1/chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92 {} +GOT:{'uuid': '17a5fc53-11a1-45df-829f-c335b1ca9a92', 'created_at': '2024-01-06T15:33:24.976007+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92', 'rel': 'self'}, {'href': 'http://localhost/chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92/nodes', 'rel': 'bookmark'}]]} +GET: /chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92 {} +GOT:{'uuid': '17a5fc53-11a1-45df-829f-c335b1ca9a92', 'created_at': '2024-01-06T15:33:24.976007+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92', 'rel': 'self'}, {'href': 'http://localhost/chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/17a5fc53-11a1-45df-829f-c335b1ca9a92/nodes', 'rel': 'bookmark'}]]} +GET: /v1/chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32 {} +GOT:{'uuid': '15aaa0f2-ead1-4b61-aa58-2092653fdc32', 'created_at': '2024-01-06T15:33:25.452888+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32', 'rel': 'self'}, {'href': 'http://foo/chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32/nodes', 'rel': 'bookmark'}]]} +GET: /v1/chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32 {} +GOT:{'uuid': '15aaa0f2-ead1-4b61-aa58-2092653fdc32', 'created_at': '2024-01-06T15:33:25.452888+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32', 'rel': 'self'}, {'href': 'http://foo/chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32/nodes', 'rel': 'bookmark'}]]} +GET: /chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32 {} +GOT:{'uuid': '15aaa0f2-ead1-4b61-aa58-2092653fdc32', 'created_at': '2024-01-06T15:33:25.452888+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32', 'rel': 'self'}, {'href': 'http://foo/chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/15aaa0f2-ead1-4b61-aa58-2092653fdc32/nodes', 'rel': 'bookmark'}]]} +GET: /v1/chassis {} +GOT:{'chassis': [{'uuid': '0206a81b-54de-4316-bc28-6c4eb4eb8616', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/0206a81b-54de-4316-bc28-6c4eb4eb8616', 'rel': 'self'}, {'href': 'http://localhost/chassis/0206a81b-54de-4316-bc28-6c4eb4eb8616', 'rel': 'bookmark'}]}, {'uuid': '3f091412-2c41-424c-8419-cfa6df2d3c70', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/3f091412-2c41-424c-8419-cfa6df2d3c70', 'rel': 'self'}, {'href': 'http://localhost/chassis/3f091412-2c41-424c-8419-cfa6df2d3c70', 'rel': 'bookmark'}]}, {'uuid': 'bf065373-df64-4c2f-b9f2-6e99c7a6fee3', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/bf065373-df64-4c2f-b9f2-6e99c7a6fee3', 'rel': 'self'}, {'href': 'http://localhost/chassis/bf065373-df64-4c2f-b9f2-6e99c7a6fee3', 'rel': 'bookmark'}]}, {'uuid': 'ba0f14e8-9fd4-4783-bc5f-f539b95496dd', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/ba0f14e8-9fd4-4783-bc5f-f539b95496dd', 'rel': 'self'}, {'href': 'http://localhost/chassis/ba0f14e8-9fd4-4783-bc5f-f539b95496dd', 'rel': 'bookmark'}]}, {'uuid': '5a7b0694-a7f1-4572-95a0-91a65fd85edb', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/5a7b0694-a7f1-4572-95a0-91a65fd85edb', 'rel': 'self'}, {'href': 'http://localhost/chassis/5a7b0694-a7f1-4572-95a0-91a65fd85edb', 'rel': 'bookmark'}]}]} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes {} +GOT:{'nodes': [{'uuid': 'b222b25a-0fb8-410d-b17b-5193b9954863', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/b222b25a-0fb8-410d-b17b-5193b9954863', 'rel': 'self'}, {'href': 'http://localhost/nodes/b222b25a-0fb8-410d-b17b-5193b9954863', 'rel': 'bookmark'}]}, {'uuid': '20aaaf19-9aec-4d6b-a837-d4c1fa9eeefc', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/20aaaf19-9aec-4d6b-a837-d4c1fa9eeefc', 'rel': 'self'}, {'href': 'http://localhost/nodes/20aaaf19-9aec-4d6b-a837-d4c1fa9eeefc', 'rel': 'bookmark'}]}]} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 {} +GOT:{'nodes': [{'uuid': 'b222b25a-0fb8-410d-b17b-5193b9954863', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/b222b25a-0fb8-410d-b17b-5193b9954863', 'rel': 'self'}, {'href': 'http://localhost/nodes/b222b25a-0fb8-410d-b17b-5193b9954863', '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=b222b25a-0fb8-410d-b17b-5193b9954863'} +GET: /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2ab6688d-2dd3-42cc-83bc-fb4bdebd028a +Openstack-Request-Id: req-ce744344-11fb-48e9-8796-2157c2e2127d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'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 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value ... ok +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-892dab33-2eca-4e9d-8cdf-cfe564450af1 +Openstack-Request-Id: req-8df8fe5e-23ae-424d-9ef1-3d83917fc87f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:08.561418+00:00", "updated_at": "2025-02-07T21:28:08.573806+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"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] +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 {} +GOT:{'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?fields=name,invalid {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-979247e6-3180-46d5-942a-02d4710a1f22 +Openstack-Request-Id: req-0336b245-7932-48a0-8dd8-362170668506 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.77 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"invalid\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'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 {} +GOT:{'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 {} +GOT:{'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 {} +GOT:{'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 {} +GOT:{'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 {} +GOT:{'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/raid/logical_disk_properties {} +GOT:{'foo': 'description of foo'} +GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} +GOT:{'foo': 'description of foo'} +GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} +GOT:{'foo': 'description of foo'} +GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} +GOT:{'foo': 'description of foo'} +GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ae22dd26-edba-44bd-bb57-42e38278928d +Openstack-Request-Id: req-2d2d2808-654b-465f-8ae4-27bb680bb6bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:09.047467+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"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] -GOT:Response: 400 Bad Request +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}"} +GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-aaf4eb5c-928f-4da3-a447-855c25e57d68 +Openstack-Request-Id: req-11aca4b9-2d4e-4aee-9e79-499373b43582 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-48cac515-ca6c-4532-a77b-0aab3ef5fb0a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] -GOT:Response: 400 Bad Request +{"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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-06b9f45f-b63d-4a15-b6f3-58c1e4b8a4ba +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-625dc430-6add-4d9e-84cd-5f797a643b59 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-999', 'op': 'replace'}] -GOT:Response: 200 OK +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:27.175900+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {'uuid': '681312b3-2f88-4dd4-8ff3-db6864c460b9', 'name': '13cfdc7a-a538-42aa-93a3-87da98a8e783', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-2e9a16eb-dbc9-4c72-94a7-dae904f0f6c5 +Openstack-Request-Id: req-14532f35-3247-483c-a9a3-6c32f34cd8c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:09.858078+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"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A portgroup with MAC address aa:aa:aa:11:22:33 already exists.\", \"debuginfo\": null}"} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-07b67bfe-d6c2-46d0-8b74-986f5b5fc0fb +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-1ff825a1-5614-4e50-80ae-f770ff851be2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:10.081868+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"} -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize -ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize ... ok -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config ... ok -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth ... ok -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context ... ok -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token ... ok -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token ... ok -ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter -ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter ... ok -ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support -ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support ... ok -ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed -ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed ... ok -ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded -ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded ... ok -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive ... ok -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check ... ok -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_limit -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_limit ... ok -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_never_run -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_never_run ... ok -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-53b595aa-ee44-4af7-b95c-155a9399a394 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:26.361584+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": "catsay", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "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, "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:26.361584+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': 'catsay', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-7a063452-3e52-4420-a5bf-e3b3e555bfcd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.4 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power off'} +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}"} +POST: /v1/nodes {'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', 'cpus': '8', '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-3fbd530a-8df1-449f-a77d-69eb904831e2 +Openstack-Request-Id: req-20c4e369-50c6-41b0-820b-30585e76d909 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'target': 'power off'} +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}"} +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized ... ok +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_023_nodes_validate_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_023_nodes_validate_get_admin ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:26.320568+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/71fb10cc-6b74-4456-83ce-7ce955972282 {} +GOT:{'uuid': '71fb10cc-6b74-4456-83ce-7ce955972282', 'created_at': '2024-01-06T15:33:27.130037+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': 'bios', 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/71fb10cc-6b74-4456-83ce-7ce955972282', 'rel': 'self'}, {'href': 'http://localhost/nodes/71fb10cc-6b74-4456-83ce-7ce955972282', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/71fb10cc-6b74-4456-83ce-7ce955972282/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/71fb10cc-6b74-4456-83ce-7ce955972282/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/71fb10cc-6b74-4456-83ce-7ce955972282/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/71fb10cc-6b74-4456-83ce-7ce955972282/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/71fb10cc-6b74-4456-83ce-7ce955972282/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/71fb10cc-6b74-4456-83ce-7ce955972282/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/71fb10cc-6b74-4456-83ce-7ce955972282/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/71fb10cc-6b74-4456-83ce-7ce955972282/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/d265b652-a752-489a-8727-db1b318babee {} +GOT:{'uuid': 'd265b652-a752-489a-8727-db1b318babee', 'created_at': '2024-01-06T15:33:27.290943+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': 'uefi', 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/d265b652-a752-489a-8727-db1b318babee', 'rel': 'self'}, {'href': 'http://localhost/nodes/d265b652-a752-489a-8727-db1b318babee', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/d265b652-a752-489a-8727-db1b318babee/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/d265b652-a752-489a-8727-db1b318babee/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/d265b652-a752-489a-8727-db1b318babee/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/d265b652-a752-489a-8727-db1b318babee/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/d265b652-a752-489a-8727-db1b318babee/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/d265b652-a752-489a-8727-db1b318babee/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/d265b652-a752-489a-8727-db1b318babee/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/d265b652-a752-489a-8727-db1b318babee/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6cf07160-0ea3-4978-9e6d-08f42d1eb076 +Openstack-Request-Id: req-04173daa-9963-4c37-98d0-0a3819f8ca17 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -12887,7 +11727,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'not-supported'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7c7a194b-d835-4666-bd94-37686d9ce8c0 +Openstack-Request-Id: req-b5f32b2c-692b-4e51-a355-bdfbf306b482 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -12895,7 +11735,7 @@ PUT: /v1/nodes/node-39/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/node-39/states -Openstack-Request-Id: req-58450689-a5d0-4ec3-a664-8e0b4063a5a2 +Openstack-Request-Id: req-de6e01ed-ae61-4713-be1c-90081a9c3396 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 @@ -12903,7 +11743,7 @@ PUT: /v1/nodes/node-39/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4fb077da-1092-450a-9167-22b7d838bb38 +Openstack-Request-Id: req-699baff5-9142-4c01-95e3-f5bf54cc38f8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -12911,7 +11751,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c08f3b33-d6bc-41fa-8979-78e12355ef7f +Openstack-Request-Id: req-bb60c32f-31cb-4454-99cc-5f00159e434a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 @@ -12919,7 +11759,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-18fb4fa1-24a1-4e26-a455-2b636204df64 +Openstack-Request-Id: req-5da8feec-692f-4e6c-b6f6-f91efe56a5a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -12927,7 +11767,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-dfc013ac-8b68-47a4-8038-081d56824512 +Openstack-Request-Id: req-4538204a-3d97-4652-91b9-db60ae94c270 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 @@ -12935,7 +11775,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-81190240-e74d-4d0f-b280-bb0ed02b1536 +Openstack-Request-Id: req-81533160-64ce-4080-ae10-e10474a0be4d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 @@ -12943,7 +11783,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-105beee0-0ab6-420d-b079-a5146f9cc03c +Openstack-Request-Id: req-cb07935a-3cae-4941-9f29-f10e5baece7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -12951,7 +11791,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-ff03b8d6-469c-4715-8197-da2e76e48a5d +Openstack-Request-Id: req-54837d29-39f7-4bff-94c7-4c04fca29da1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 @@ -12959,7 +11799,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-92296ba7-912c-4a92-9dbd-acf1361f4aad +Openstack-Request-Id: req-0006a960-74e6-4c1a-b3de-9f521d97b93a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 @@ -12967,7 +11807,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-a67c1086-91a2-4489-9bc3-cad76a77de51 +Openstack-Request-Id: req-51867d0c-8acc-4f86-a35d-68216eacd172 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -12975,7 +11815,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-d1fe7efa-969c-4274-8e1b-318da342e93d +Openstack-Request-Id: req-54a9b2ae-0e35-454f-b0e8-c17d3f0f14f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 @@ -12983,7 +11823,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-868fb950-51b8-4dca-92ca-47d575cd3454 +Openstack-Request-Id: req-c9237ee1-2e81-48e3-a769-fb22f48dadc3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 @@ -12991,7 +11831,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-4e4c9d7b-0bec-4b1e-9581-859f427b2e42 +Openstack-Request-Id: req-0dd0cb29-1e5a-4768-8d55-0bb9a9194f5c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -12999,1047 +11839,894 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7207a210-1123-4055-b4ae-7e5fd0a9a663 +Openstack-Request-Id: req-ec5adb31-abd9-49b0-b8c6-87d68f3b9969 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver ... ok +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-bff7bd8d-a863-4c2d-a126-ac5e80c308a7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-0af0aac2-111f-4dc6-bc0a-b0b617483f39 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode ... ok +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_hidden_in_lower_version ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver ... ok +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked ... ok +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_024_nodes_validate_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_024_nodes_validate_get_member ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping ... ok +POST: /v1/nodes {'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', 'cpus': '8', '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-f80746e8-f235-4717-a94f-c8d314134ead +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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 {'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', 'cpus': '8', '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-e74463dd-2215-4b1d-89ec-971b2bc80847 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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 {'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', 'cpus': '8', '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-af4e82fe-2538-4aca-bc8a-614643448b7a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/nodes {'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', 'cpus': '8', '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-c84bc195-242e-4428-9649-19a7d27cee6c +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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 {'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', 'cpus': '8', '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-07103fc6-ba78-4d47-a318-8c3808655ddb +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'resource_class': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_null_field +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_null_field ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver ... ok +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class ... ok +ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid +ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:27.872697+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:27.872697+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:28.507132+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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?instance_uuid=e9107289-e18c-4f6d-95ca-e4657ce89de6 {} +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress ... ok -ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context_with_environ -ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context_with_environ ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_with_mdns -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_with_mdns ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_url_http -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_url_http ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_deploy -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_deploy ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level ... ok -ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict -ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start ... ok -ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict_older_api_server -ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict_older_api_server ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy ... ok -ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context -ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context ... ok -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb ... ok -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_stop -ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_stop ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks ... ok -ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context -ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_dict_get_auth_token_info -ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_dict_get_auth_token_info ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel ... ok -GOT:{'deploy_templates': [{'uuid': '1624c934-72a6-4813-b02b-ae9bd07c452b', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/1624c934-72a6-4813-b02b-ae9bd07c452b', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1624c934-72a6-4813-b02b-ae9bd07c452b', 'rel': 'bookmark'}]}, {'uuid': '777fa2b6-04e0-4976-a5c7-bd57321e8a8c', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/777fa2b6-04e0-4976-a5c7-bd57321e8a8c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/777fa2b6-04e0-4976-a5c7-bd57321e8a8c', 'rel': 'bookmark'}]}, {'uuid': 'f331f2e5-26fc-4946-86c5-c94e7d14cd81', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/f331f2e5-26fc-4946-86c5-c94e7d14cd81', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/f331f2e5-26fc-4946-86c5-c94e7d14cd81', 'rel': 'bookmark'}]}]} -GET: /v1/deploy_templates?sort_key=name&detail=False {} -GOT:{'deploy_templates': [{'uuid': 'bd2756ec-d62b-418d-a19f-f35f9e206d1b', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/bd2756ec-d62b-418d-a19f-f35f9e206d1b', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/bd2756ec-d62b-418d-a19f-f35f9e206d1b', 'rel': 'bookmark'}]}, {'uuid': 'e141b9f2-a07d-42eb-b64a-9f9d2450ff5b', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/e141b9f2-a07d-42eb-b64a-9f9d2450ff5b', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/e141b9f2-a07d-42eb-b64a-9f9d2450ff5b', 'rel': 'bookmark'}]}, {'uuid': '65ef42a9-8305-4b31-8ffe-d52c9766443f', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/65ef42a9-8305-4b31-8ffe-d52c9766443f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/65ef42a9-8305-4b31-8ffe-d52c9766443f', 'rel': 'bookmark'}]}]} -GET: /v1/deploy_templates?sort_key=extra {} +ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid_colon_key_name +ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid_colon_key_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid ... ok +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id ... ok +ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_get_next +ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_get_next ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_025_nodes_validate_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_025_nodes_validate_get_observer ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version ... ok +GOT:{'deploy_templates': [{'uuid': '66fa9003-9abe-49e8-989d-c2f457e78536', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/66fa9003-9abe-49e8-989d-c2f457e78536', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/66fa9003-9abe-49e8-989d-c2f457e78536', 'rel': 'bookmark'}]}, {'uuid': '4f575819-c8ea-4755-aa92-2692baaf0d96', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/4f575819-c8ea-4755-aa92-2692baaf0d96', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4f575819-c8ea-4755-aa92-2692baaf0d96', 'rel': 'bookmark'}]}, {'uuid': '0f9c7adc-b210-4f24-a379-13e64920c735', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/0f9c7adc-b210-4f24-a379-13e64920c735', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/0f9c7adc-b210-4f24-a379-13e64920c735', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=0f9c7adc-b210-4f24-a379-13e64920c735'} +GET: /v1/deploy_templates?detail=True {} +GOT:{'deploy_templates': [{'uuid': '547ac58f-0b19-405e-9f75-299448acf007', 'created_at': '2024-01-06T15:33:24.935697+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/547ac58f-0b19-405e-9f75-299448acf007', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/547ac58f-0b19-405e-9f75-299448acf007', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}]} +GET: /v1/deploy_templates {} +GOT:{'deploy_templates': [{'uuid': '7fca9f9d-c000-46bf-b8ea-4589ced90c0f', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/7fca9f9d-c000-46bf-b8ea-4589ced90c0f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7fca9f9d-c000-46bf-b8ea-4589ced90c0f', 'rel': 'bookmark'}]}]} +GET: /v1/deploy_templates?detail=False {} +GOT:{'deploy_templates': [{'uuid': '7fca9f9d-c000-46bf-b8ea-4589ced90c0f', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/7fca9f9d-c000-46bf-b8ea-4589ced90c0f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7fca9f9d-c000-46bf-b8ea-4589ced90c0f', 'rel': 'bookmark'}]}]} +GET: /v1/deploy_templates?sort_key=name&detail=True {} +GOT:{'deploy_templates': [{'uuid': '3cfde003-50b3-4d1b-8cf5-b4c69e82efa4', 'created_at': '2024-01-06T15:33:25.773556+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/3cfde003-50b3-4d1b-8cf5-b4c69e82efa4', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3cfde003-50b3-4d1b-8cf5-b4c69e82efa4', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': 'e30d1974-376a-4f0b-86f7-8187380a5d97', 'created_at': '2024-01-06T15:33:25.771168+00:00', 'updated_at': None, 'name': 'CUSTOM_DT2', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/e30d1974-376a-4f0b-86f7-8187380a5d97', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/e30d1974-376a-4f0b-86f7-8187380a5d97', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '808406cb-ecfe-4329-aff9-52a283963a04', 'created_at': '2024-01-06T15:33:25.768445+00:00', 'updated_at': None, 'name': 'CUSTOM_DT3', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/808406cb-ecfe-4329-aff9-52a283963a04', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/808406cb-ecfe-4329-aff9-52a283963a04', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}]} +GET: /v1/deploy_templates?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-2c79180a-fe31-46d9-b57f-ffc8b74739a2 +Openstack-Request-Id: req-db16f4e0-ce89-4d92-8f8d-f0cf3f02ad3c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} +GET: /v1/deploy_templates?detail=False&fields=steps {} +GOT:{'deploy_templates': [{'links': [{'href': 'http://localhost/v1/deploy_templates/a653ca1c-4757-47c8-be13-7b5badac984e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a653ca1c-4757-47c8-be13-7b5badac984e', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}]} +GET: /v1/deploy_templates {} +GOT:{'deploy_templates': []} +GET: /v1/deploy_templates {} +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\"}"} +GET: /v1/deploy_templates?fields=uuid,steps {} +GOT:{'deploy_templates': [{'uuid': '965513de-bba4-4865-b88c-d65311b9a3ef', 'links': [{'href': 'http://localhost/v1/deploy_templates/965513de-bba4-4865-b88c-d65311b9a3ef', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/965513de-bba4-4865-b88c-d65311b9a3ef', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '7e8806b3-0f15-451a-ba96-08de10221aa3', 'links': [{'href': 'http://localhost/v1/deploy_templates/7e8806b3-0f15-451a-ba96-08de10221aa3', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7e8806b3-0f15-451a-ba96-08de10221aa3', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '64d36a82-245b-4f79-9f3c-6ff9d7887759', 'links': [{'href': 'http://localhost/v1/deploy_templates/64d36a82-245b-4f79-9f3c-6ff9d7887759', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/64d36a82-245b-4f79-9f3c-6ff9d7887759', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}]} +GET: /v1/deploy_templates?fields=name&limit=2 {} +GOT:{'deploy_templates': [{'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/0cd800c5-65ff-41e1-9e71-ca56c09184b2', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/0cd800c5-65ff-41e1-9e71-ca56c09184b2', 'rel': 'bookmark'}]}, {'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/e9414818-c7f6-413a-b9d0-a350100d1d5a', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/e9414818-c7f6-413a-b9d0-a350100d1d5a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=e9414818-c7f6-413a-b9d0-a350100d1d5a'} +GET: /v1/deploy_templates/607a30b0-afd1-41f3-8b52-2af7a7b2b0b2?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-66251be5-7814-4401-8903-e84b4c8eb88a +Openstack-Request-Id: req-0aba222c-ffc2-4d63-babd-00f91a489e69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/deploy_templates/6e5f489a-abbf-46ad-aa7b-18bcc8bf2f10 {} +GOT:{'uuid': '6e5f489a-abbf-46ad-aa7b-18bcc8bf2f10', 'created_at': '2024-01-06T15:33:29.056532+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/6e5f489a-abbf-46ad-aa7b-18bcc8bf2f10', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/6e5f489a-abbf-46ad-aa7b-18bcc8bf2f10', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +GET: /v1/deploy_templates/fc00be4f-9b3e-47de-b2ca-d56a90d8f4fd?fields=name,steps {} +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields ... ok +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'AA:BB:CC:DD:EE:FF', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-c5f541d7-460d-4db9-93c4-38112d0ced49 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-b95fda03-dc62-4885-ae75-3e47d288a84a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'value': '1', 'op': 'add'}] -GOT:Response: 400 Bad Request +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:27.606495+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T15:33:27.606495+00:00', 'updated_at': None, 'address': 'aa:bb:cc:dd:ee:ff', 'extra': {}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-8e2ef85f-60e5-437b-8b51-01a7dc202c68 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-0313b1dc-97d6-41de-ab4d-1db631bf5f36 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.26 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:28.096967+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-901c1c2b-52f3-4d9c-a25d-bdb0e5972687 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:28.462237+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T15:33:28.462237+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-82e0b341-800e-4f8d-b6d1-8f1780403a82 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +POST: /v1/portgroups {'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/portgroups/1991181a-f6bf-4cdf-80d3-3710d1af6295 +Openstack-Request-Id: req-da8c9125-4b48-48b1-9b8e-fb77941f944b +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1991181a-f6bf-4cdf-80d3-3710d1af6295", "created_at": "2024-01-06T15:33:29.388687+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, "links": [{"href": "http://localhost/v1/portgroups/1991181a-f6bf-4cdf-80d3-3710d1af6295", "rel": "self"}, {"href": "http://localhost/portgroups/1991181a-f6bf-4cdf-80d3-3710d1af6295", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/1991181a-f6bf-4cdf-80d3-3710d1af6295/ports", "rel": "self"}, {"href": "http://localhost/portgroups/1991181a-f6bf-4cdf-80d3-3710d1af6295/ports", "rel": "bookmark"}]} +GET: /v1/portgroups/1991181a-f6bf-4cdf-80d3-3710d1af6295 {} +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_has_next +ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_has_next ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource ... ok +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth ... ok +ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_list_convert_with_links +ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_list_convert_with_links ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f7564e7b-5fac-4943-a183-d6f94409d036 +Openstack-Request-Id: req-a204bb21-691e-4263-9fd7-b00d651d8fae +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "907b8762-4bfe-458c-8d3a-a20e3c46aa1e", "created_at": "2024-01-06T15:33:25.376619+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/907b8762-4bfe-458c-8d3a-a20e3c46aa1e", "rel": "self"}, {"href": "http://localhost/nodes/907b8762-4bfe-458c-8d3a-a20e3c46aa1e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/907b8762-4bfe-458c-8d3a-a20e3c46aa1e/ports", "rel": "self"}, {"href": "http://localhost/nodes/907b8762-4bfe-458c-8d3a-a20e3c46aa1e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/907b8762-4bfe-458c-8d3a-a20e3c46aa1e/states", "rel": "self"}, {"href": "http://localhost/nodes/907b8762-4bfe-458c-8d3a-a20e3c46aa1e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/907b8762-4bfe-458c-8d3a-a20e3c46aa1e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/907b8762-4bfe-458c-8d3a-a20e3c46aa1e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/907b8762-4bfe-458c-8d3a-a20e3c46aa1e/volume", "rel": "self"}, {"href": "http://localhost/nodes/907b8762-4bfe-458c-8d3a-a20e3c46aa1e/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/9bb50f13-0b8d-4ade-ad2d-d91fefdef9ff [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-3ad5750c-3824-47f3-9059-d400f3f64e40 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/9bb50f13-0b8d-4ade-ad2d-d91fefdef9cc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-e7cf7fae-65dc-4d83-bb39-c5291d918add X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:09.585869+00:00", "updated_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", "cpus": "8", "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"}]} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-101374f8-f801-44a2-bcd7-ddd5603fe215 +Openstack-Request-Id: req-3bbff3d4-f6a7-4518-8c3d-653365515e7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:10.031535+00:00", "updated_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", "cpus": "8", "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"}]} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'add'}] -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_dbapi_single_call -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_dbapi_single_call ... ok -ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values -ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False ... ok -GOT:{'network_interface': None, '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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} -GOT:Response: 406 Not Acceptable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: port_uuid\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'value': 'foo', 'op': 'add'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-edeba460-8a1a-4a88-85da-ad8b3ee3e681 +Openstack-Request-Id: req-5f556d18-17c5-419e-bed6-514a143e1e11 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes?conductor=rocky.rocks {} -GOT:{'nodes': []} -GET: /v1/nodes?conductor=fake.conductor {} -GOT:{'nodes': [{'uuid': 'e78c0597-6d28-4dd7-8678-e0839d6028d2', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/e78c0597-6d28-4dd7-8678-e0839d6028d2', 'rel': 'self'}, {'href': 'http://localhost/nodes/e78c0597-6d28-4dd7-8678-e0839d6028d2', 'rel': 'bookmark'}]}, {'uuid': '0156783d-9c36-449d-ab55-80ab51de0f28', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/0156783d-9c36-449d-ab55-80ab51de0f28', 'rel': 'self'}, {'href': 'http://localhost/nodes/0156783d-9c36-449d-ab55-80ab51de0f28', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?conductor=fake.conductor {} -GOT:{'nodes': [{'uuid': '0156783d-9c36-449d-ab55-80ab51de0f28', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/0156783d-9c36-449d-ab55-80ab51de0f28', 'rel': 'self'}, {'href': 'http://localhost/nodes/0156783d-9c36-449d-ab55-80ab51de0f28', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?conductor_group=group1 {} -GOT:{'nodes': [{'uuid': 'f8cbc456-ac92-4e79-87c5-d68832a9393a', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/f8cbc456-ac92-4e79-87c5-d68832a9393a', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8cbc456-ac92-4e79-87c5-d68832a9393a', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?conductor_group=group2 {} -GOT:{'nodes': [{'uuid': '30173be3-bd0a-42e2-acf1-a1558401e575', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/30173be3-bd0a-42e2-acf1-a1558401e575', 'rel': 'self'}, {'href': 'http://localhost/nodes/30173be3-bd0a-42e2-acf1-a1558401e575', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?conductor_group=group1 {} -GOT:{'nodes': [{'uuid': 'f8cbc456-ac92-4e79-87c5-d68832a9393a', 'created_at': '2025-02-07T21:28:11.065173+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': 'group1', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/f8cbc456-ac92-4e79-87c5-d68832a9393a', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8cbc456-ac92-4e79-87c5-d68832a9393a', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/f8cbc456-ac92-4e79-87c5-d68832a9393a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8cbc456-ac92-4e79-87c5-d68832a9393a/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f8cbc456-ac92-4e79-87c5-d68832a9393a/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8cbc456-ac92-4e79-87c5-d68832a9393a/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/f8cbc456-ac92-4e79-87c5-d68832a9393a/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8cbc456-ac92-4e79-87c5-d68832a9393a/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/f8cbc456-ac92-4e79-87c5-d68832a9393a/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8cbc456-ac92-4e79-87c5-d68832a9393a/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?conductor_group=group2 {} -GOT:{'nodes': [{'uuid': '30173be3-bd0a-42e2-acf1-a1558401e575', 'created_at': '2025-02-07T21:28:11.070829+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': 'group2', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/30173be3-bd0a-42e2-acf1-a1558401e575', 'rel': 'self'}, {'href': 'http://localhost/nodes/30173be3-bd0a-42e2-acf1-a1558401e575', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/30173be3-bd0a-42e2-acf1-a1558401e575/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/30173be3-bd0a-42e2-acf1-a1558401e575/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/30173be3-bd0a-42e2-acf1-a1558401e575/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/30173be3-bd0a-42e2-acf1-a1558401e575/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/30173be3-bd0a-42e2-acf1-a1558401e575/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/30173be3-bd0a-42e2-acf1-a1558401e575/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/30173be3-bd0a-42e2-acf1-a1558401e575/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/30173be3-bd0a-42e2-acf1-a1558401e575/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?conductor_group=group1 {} -GOT:Response: 406 Not Acceptable +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}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'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-f2302f34-ac9d-4d56-939a-3339db617126 +Openstack-Request-Id: req-a21d98e4-4896-4567-a382-b4a6c232a25d X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk ... ok -ACL Test GOT Response: 200 OK +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}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'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-ae91009d-e29e-4dd9-b8b6-b1cfc01aa5dd +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d527433f-527b-4d14-92af-78a050084f56 +Openstack-Request-Id: req-c13353da-ba0a-42da-8ce3-26326a7b0e6a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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.80"}, "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"}]} -API ACL Testing Path get /v1/ -GET: /v1/ {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a8561c88-662f-4ee7-9310-9bf7e7904a0f +Openstack-Request-Id: req-747edec1-7309-4f46-a3ac-315f2fe133a4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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.80"}, "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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a8561c88-662f-4ee7-9310-9bf7e7904a0f +Openstack-Request-Id: req-84d080ec-f9d3-4051-8b0e-3ffb3f865fec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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.80"}, "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"}]} -API ACL Testing Path get /v1.json -GET: /v1.json {} -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_8_public_api_v1_json -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_8_public_api_v1_json ... ok -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_9_public_api_v1_xml -ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_9_public_api_v1_xml ... ok -ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request -ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request ... ok -ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request -ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request ... ok -ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary -ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipa_debug_rescue -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipa_debug_rescue ... ok -ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id -ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id ... ok -ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached -ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached ... ok -ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available -ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available ... ok -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image ... ok -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail ... ok -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance ... ok -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay_software -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay_software ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver ... ok -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true ... ok -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects ... ok -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions ... ok -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version ... ok -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_object_versions -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_object_versions ... ok -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_release_versions -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_release_versions ... ok -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered ... ok -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported ... ok -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure ... ok -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting ... ok -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default ... ok -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default_limit -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default_limit ... ok -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting ... ok -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting ... ok -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled ... ok -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch ... ok -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_node_associated_with_another_instance -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_node_associated_with_another_instance ... ok -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node ... ok -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch ... ok -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active ... ok -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch ... ok -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_uuid_associated_with_another_instance -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_uuid_associated_with_another_instance ... ok -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node ... ok -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes ... ok -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_unassociated_node -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_unassociated_node ... ok -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class -ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_all -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_all ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_async -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_async ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_dynamic -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_dynamic ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_fast_track -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_fast_track ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_in_deploywait -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_in_deploywait ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_none -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_none ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_first_agent_boot -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_first_agent_boot ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_no_skip_step -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_no_skip_step ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_boot_mode -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_boot_mode ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_too_few_physical_disks -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_too_few_physical_disks ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_driver_info -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_driver_info ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck ... ok -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'storage_interface': 'cinder', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'op': 'remove'}] +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-a983aa97-bf0d-4b36-8f90-2f14dc5e457d +Openstack-Request-Id: req-598e455e-b157-4636-819e-5b05d92aaa71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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", "cpus": "8", "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"}]} +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:28.620373+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", "cpus": "8", "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, "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'cinder', 'target_power_state': None, 'target_provision_state': None, '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'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:28.620373+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': None, 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': 'foo', 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-4694562d-f5d6-4637-88cd-d0397e570855 +Openstack-Request-Id: req-89eccca0-a15a-4743-9e40-527bdeff8c32 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 0} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'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', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_026_nodes_maintenance_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_026_nodes_maintenance_put_admin ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8622f5b1-aab8-4559-ad28-8a37d7501556 +Openstack-Request-Id: req-e320d5a1-90f1-4a9b-832d-a790bdd53d2e X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:27.033655+00:00", "updated_at": "2024-01-06T15:33:27.076408+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-399658c0-5a52-4b1f-92fd-2b2f14ddc561 +Openstack-Request-Id: req-1e3ccdc8-0da4-4563-aa9c-878001b1c0cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_secure_boot -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_secure_boot ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_ramdisk -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_ramdisk ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_instance_info -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_instance_info ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean ... ok -GOT:Response: 400 Bad Request +{"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\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e95d8e94-d6aa-41df-806a-27d0d88b3f55 +Openstack-Request-Id: req-2021c937-2550-46fa-aa42-0a5cbd42bf57 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/heartbeat/987076f8-e356-4b2a-9a03-f95754ebbed9 {'callback_url': 'url'} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:27.956482+00:00", "updated_at": null, "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"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1a5dc338-61e1-4fd3-923e-f69f82436dea +Openstack-Request-Id: req-d4eba59e-6552-4258-a36b-3d7d5e3997a3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=713c2c1c-14d8-4821-8d7e-fdccbd2b7305 {} -GOT:{'node': {'uuid': '713c2c1c-14d8-4821-8d7e-fdccbd2b7305', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/713c2c1c-14d8-4821-8d7e-fdccbd2b7305', 'rel': 'self'}, {'href': 'http://localhost/nodes/713c2c1c-14d8-4821-8d7e-fdccbd2b7305', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'abcxyz', 'agent_token_required': True}} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=713c2c1c-14d8-4821-8d7e-fdccbd2b7305 {} -GOT:{'node': {'uuid': '713c2c1c-14d8-4821-8d7e-fdccbd2b7305', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/713c2c1c-14d8-4821-8d7e-fdccbd2b7305', 'rel': 'self'}, {'href': 'http://localhost/nodes/713c2c1c-14d8-4821-8d7e-fdccbd2b7305', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'abcxyz', 'agent_token_required': True}} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=713c2c1c-14d8-4821-8d7e-fdccbd2b7305 {} -GOT:{'node': {'uuid': '713c2c1c-14d8-4821-8d7e-fdccbd2b7305', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/713c2c1c-14d8-4821-8d7e-fdccbd2b7305', 'rel': 'self'}, {'href': 'http://localhost/nodes/713c2c1c-14d8-4821-8d7e-fdccbd2b7305', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'abcxyz', 'agent_token_required': True}} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} -GOT:{'node': {'uuid': '5d61adf4-ef81-4513-8c9b-86cfdb57acaa', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/5d61adf4-ef81-4513-8c9b-86cfdb57acaa', 'rel': 'self'}, {'href': 'http://localhost/nodes/5d61adf4-ef81-4513-8c9b-86cfdb57acaa', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'some-value', 'agent_token_required': True}} -GET: /v1/lookup?node_uuid=500ccead-7344-4cd1-9428-b51d6adc95ba {} -GOT:{'node': {'uuid': '500ccead-7344-4cd1-9428-b51d6adc95ba', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/500ccead-7344-4cd1-9428-b51d6adc95ba', 'rel': 'self'}, {'href': 'http://localhost/nodes/500ccead-7344-4cd1-9428-b51d6adc95ba', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'xyzabc', 'agent_token_required': True}} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=a4edfc28-bf1d-474b-9626-9d10bebd75b7 {} -GOT:{'node': {'uuid': 'a4edfc28-bf1d-474b-9626-9d10bebd75b7', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/a4edfc28-bf1d-474b-9626-9d10bebd75b7', 'rel': 'self'}, {'href': 'http://localhost/nodes/a4edfc28-bf1d-474b-9626-9d10bebd75b7', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'this_thing_on?', 'agent_token_required': True}} -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 {} -GOT:{'node': {'uuid': '059940e5-3cf7-4adf-851c-b115565b90b1', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/059940e5-3cf7-4adf-851c-b115565b90b1', 'rel': 'self'}, {'href': 'http://localhost/nodes/059940e5-3cf7-4adf-851c-b115565b90b1', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': '123456', 'agent_token_required': True}} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=36a61883-60c1-4bae-95ab-478a20d56689 {} -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_no_restrict_lookup -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_no_restrict_lookup ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_not_found -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_nothing_provided -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_nothing_provided ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_old_api_version -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_restrict_lookup -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_restrict_lookup ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_agent_busy -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_agent_busy ... ok -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue -ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue ... ok -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T21:28:10.729338+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'pg.json', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T21:28:10.995029+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'pg.1', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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/5b735c6c-cf48-485d-a24f-b9ef5fac3223 {} -GOT:{'uuid': '5b735c6c-cf48-485d-a24f-b9ef5fac3223', 'created_at': '2025-02-07T21:28:11.240798+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/5b735c6c-cf48-485d-a24f-b9ef5fac3223', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5b735c6c-cf48-485d-a24f-b9ef5fac3223', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/5b735c6c-cf48-485d-a24f-b9ef5fac3223/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5b735c6c-cf48-485d-a24f-b9ef5fac3223/ports', 'rel': 'bookmark'}]} -GET: /v1/portgroups/5b735c6c-cf48-485d-a24f-b9ef5fac3223 {} -GOT:{'uuid': '5b735c6c-cf48-485d-a24f-b9ef5fac3223', 'created_at': '2025-02-07T21:28:11.240798+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/5b735c6c-cf48-485d-a24f-b9ef5fac3223', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5b735c6c-cf48-485d-a24f-b9ef5fac3223', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/5b735c6c-cf48-485d-a24f-b9ef5fac3223/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5b735c6c-cf48-485d-a24f-b9ef5fac3223/ports', 'rel': 'bookmark'}]} -GET: /portgroups/5b735c6c-cf48-485d-a24f-b9ef5fac3223 {} -GOT:{'uuid': '5b735c6c-cf48-485d-a24f-b9ef5fac3223', 'created_at': '2025-02-07T21:28:11.240798+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/5b735c6c-cf48-485d-a24f-b9ef5fac3223', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5b735c6c-cf48-485d-a24f-b9ef5fac3223', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/5b735c6c-cf48-485d-a24f-b9ef5fac3223/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5b735c6c-cf48-485d-a24f-b9ef5fac3223/ports', 'rel': 'bookmark'}]} -GET: /v1/portgroups {} -GOT:{'portgroups': [{'uuid': '9e579798-25a3-44bd-8721-e8b9a88c897d', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/9e579798-25a3-44bd-8721-e8b9a88c897d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9e579798-25a3-44bd-8721-e8b9a88c897d', 'rel': 'bookmark'}]}, {'uuid': 'ef8552b9-ad77-4f63-9720-a0bb72870250', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/ef8552b9-ad77-4f63-9720-a0bb72870250', 'rel': 'self'}, {'href': 'http://localhost/portgroups/ef8552b9-ad77-4f63-9720-a0bb72870250', 'rel': 'bookmark'}]}, {'uuid': '2e5a0f66-80cc-44d2-915b-bc61aaaf4d44', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/2e5a0f66-80cc-44d2-915b-bc61aaaf4d44', 'rel': 'self'}, {'href': 'http://localhost/portgroups/2e5a0f66-80cc-44d2-915b-bc61aaaf4d44', 'rel': 'bookmark'}]}, {'uuid': 'c636dea2-4028-4fd8-a3e2-931ad4e13db5', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/c636dea2-4028-4fd8-a3e2-931ad4e13db5', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c636dea2-4028-4fd8-a3e2-931ad4e13db5', 'rel': 'bookmark'}]}, {'uuid': '67385fc2-2071-475e-8bf8-53de5d566e74', 'address': '52:54:00:cf:2d:34', 'name': 'portgroup4', 'links': [{'href': 'http://localhost/v1/portgroups/67385fc2-2071-475e-8bf8-53de5d566e74', 'rel': 'self'}, {'href': 'http://localhost/portgroups/67385fc2-2071-475e-8bf8-53de5d566e74', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups {} -GOT:{'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?address=aa:bb:cc:dd:ee:f1 {} -GOT:{'portgroups': [{'uuid': '97e3f67b-84f2-4667-a5b0-75016198b4b8', 'address': 'aa:bb:cc:dd:ee:f1', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/97e3f67b-84f2-4667-a5b0-75016198b4b8', 'rel': 'self'}, {'href': 'http://localhost/portgroups/97e3f67b-84f2-4667-a5b0-75016198b4b8', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups?address=invalid-mac-format {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e0e9e7f0-1b53-4442-8e23-f20ba70e7176 +Openstack-Request-Id: req-e3c45dd0-95c5-4067-86d7-0bb70d91d2f8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"} -GET: /v1/portgroups?address=aa:bb:cc:dd:ee:ff {} -GOT:{'portgroups': []} -GET: /v1/portgroups {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.34 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:28.692521+00:00", "updated_at": "2024-01-06T15:33:28.725546+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-72b0134f-6a78-4df2-882b-b492f10283c0 +Openstack-Request-Id: req-2994c525-e399-48b7-970e-65809ed62c73 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/portgroups/a6dea9ac-9a7d-497a-a9ee-fff514d257fc/ports {} -GOT:{'ports': [{'uuid': '98f0b68e-caea-4544-99dd-67ae94e456b2', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/98f0b68e-caea-4544-99dd-67ae94e456b2', 'rel': 'self'}, {'href': 'http://localhost/ports/98f0b68e-caea-4544-99dd-67ae94e456b2', 'rel': 'bookmark'}]}, {'uuid': '4e508142-8f4d-4ccd-8f82-2308427c2afc', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/4e508142-8f4d-4ccd-8f82-2308427c2afc', 'rel': 'self'}, {'href': 'http://localhost/ports/4e508142-8f4d-4ccd-8f82-2308427c2afc', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups/a6dea9ac-9a7d-497a-a9ee-fff514d257fc/ports/detail {} -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_agent_token -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_agent_token ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_configdrive_vendor_data -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_configdrive_vendor_data ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_steps -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_steps ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_with_default -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_with_default ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_internal_info -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_internal_info ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_rescue_interface -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_rescue_interface ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_traits -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_traits ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_vendor_data_failed -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_vendor_data_failed ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_empty -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_empty ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_target_unsupported -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_target_unsupported ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_version_older -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_version_older ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated ... ok -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.33 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-273c3e73-f02d-4588-bb9c-0046f81fefd1 +Openstack-Request-Id: req-29adad4a-e175-4232-b138-d56974aa1f26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.34 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'a064160e-2484-41d3-a7b8-48ba7282c662', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-273c3e73-f02d-4588-bb9c-0046f81fefd1 +Openstack-Request-Id: req-0bb0013a-3e2e-4059-813c-6292ee9ffb5a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +X-Openstack-Ironic-Api-Version: 1.24 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:29.720990+00:00", "updated_at": "2024-01-06T15:33:29.774732+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "a064160e-2484-41d3-a7b8-48ba7282c662"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'a0c838de-895d-429e-ad3e-d73845c29653', 'op': 'replace'}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-a551ba16-b731-4b90-bf25-39374638f7d0 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'f6989e84-0df5-4a82-8965-5dd3492ec31f', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ec86d0eb-3a6c-47ad-9ac9-25ddffab7507 +Openstack-Request-Id: req-ff2655a0-11d9-45a7-8955-7c8320162c7a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:10.287117+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -driver -fake-driverz -ACL Test GOT Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.24 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:30.320007+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '51adf28f-c7fd-4ebb-82ee-53ac23326aa7', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '640cf16d-0e68-477f-8e54-28bdb3ddcd52', 'op': 'add'}] +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable ... ok +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_027_nodes_maintenance_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_027_nodes_maintenance_put_member ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported ... ok +GOT:{'nodes': [{'uuid': '67d621a3-9922-4729-a038-c9af25fce4fa', 'instance_uuid': 'e9107289-e18c-4f6d-95ca-e4657ce89de6', 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/67d621a3-9922-4729-a038-c9af25fce4fa', 'rel': 'self'}, {'href': 'http://localhost/nodes/67d621a3-9922-4729-a038-c9af25fce4fa', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?instance_uuid=fake {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ec86d0eb-3a6c-47ad-9ac9-25ddffab7507 +Openstack-Request-Id: req-c1083bd0-5d21-4b4d-9f98-04ad0f21a466 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:10.287117+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for instance_uuid: fake\", \"debuginfo\": null}"} +GET: /v1/nodes?instance_uuid=caf39685-1ed5-4c4f-b9a2-c5ee54269d8d {} +GOT:{'nodes': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_006_nodes_get_node_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_006_nodes_get_node_member ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire ... ok -GOT:{'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'}]} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:09.838203+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:10.053510+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, '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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:10.053510+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:10.254372+00:00', 'updated_at': None, '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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:10.254372+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:10.518924+00:00', 'updated_at': None, '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': None, 'pxe_enabled': 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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:10.518924+00:00', 'updated_at': None, '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': None, 'pxe_enabled': 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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:10.719382+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:10.719382+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:10.985919+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:11.193642+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:11.193642+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GET: /v1/ports/f57e6dc7-e146-44c1-92b2-b596a9910813 {} -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden_no_project -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden_no_project ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_node -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_node ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many_non_admin -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many_non_admin ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_ipa_debug -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_ipa_debug ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_local_boot -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_local_boot ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_handled_exception -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_handled_exception ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs_fail ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_opts_ramdisk_opt -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_opts_ramdisk_opt ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node ... ok -GOT:Response: 400 Bad Request +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:30.289624+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:30.289624+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:30.820933+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-c07d7938-4da9-4df7-8b93-29a76f1d3815 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-a5e9bec0-dbb1-439c-8ffc-1654f468ed45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:29.883621+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", "cpus": "8", "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:29.883621+00:00', 'updated_at': None, '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': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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'}]} +POST: /v1/nodes {'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', 'cpus': '8', '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-af4b0816-17ee-402c-b7bf-950076f696a0 +Openstack-Request-Id: req-5f1c4064-ce6e-4942-a7c4-21ff9e26b367 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:09.795509+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.45 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1e1d9200-565a-4350-b91a-4b75baa3b245', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_deploy +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_deploy ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure ... ok +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245 +Openstack-Request-Id: req-62c4c962-879b-40db-b2ab-d74634e65974 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "1e1d9200-565a-4350-b91a-4b75baa3b245", "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", "cpus": "8", "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/1e1d9200-565a-4350-b91a-4b75baa3b245", "rel": "self"}, {"href": "http://localhost/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/ports", "rel": "self"}, {"href": "http://localhost/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/states", "rel": "self"}, {"href": "http://localhost/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/volume", "rel": "self"}, {"href": "http://localhost/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/volume", "rel": "bookmark"}]} +GET: /v1/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245 {} +GOT:{'uuid': '1e1d9200-565a-4350-b91a-4b75baa3b245', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e1d9200-565a-4350-b91a-4b75baa3b245/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '61210bb7-a423-47f0-a5e2-07a01d8f763d', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/61210bb7-a423-47f0-a5e2-07a01d8f763d +Openstack-Request-Id: req-6370be6a-4d89-4cc3-894c-9d414a1246d8 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "61210bb7-a423-47f0-a5e2-07a01d8f763d", "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", "cpus": "8", "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/61210bb7-a423-47f0-a5e2-07a01d8f763d", "rel": "self"}, {"href": "http://localhost/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/ports", "rel": "self"}, {"href": "http://localhost/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/states", "rel": "self"}, {"href": "http://localhost/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/volume", "rel": "self"}, {"href": "http://localhost/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/volume", "rel": "bookmark"}]} +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_028_nodes_maintenance_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_028_nodes_maintenance_put_observer ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties ... ok +GET: /v1/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d {} +GOT:{'uuid': '61210bb7-a423-47f0-a5e2-07a01d8f763d', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d', 'rel': 'self'}, {'href': 'http://localhost/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/61210bb7-a423-47f0-a5e2-07a01d8f763d/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': 'c6e81629-03d7-43d6-a2ce-89aa7da9ac7d', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d +Openstack-Request-Id: req-11f7d266-9754-4c15-b4bd-4beef8dba078 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "c6e81629-03d7-43d6-a2ce-89aa7da9ac7d", "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", "cpus": "8", "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/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d", "rel": "self"}, {"href": "http://localhost/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/ports", "rel": "self"}, {"href": "http://localhost/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/states", "rel": "self"}, {"href": "http://localhost/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/volume", "rel": "self"}, {"href": "http://localhost/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/volume", "rel": "bookmark"}]} +GET: /v1/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d {} +GOT:{'uuid': 'c6e81629-03d7-43d6-a2ce-89aa7da9ac7d', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d', 'rel': 'self'}, {'href': 'http://localhost/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c6e81629-03d7-43d6-a2ce-89aa7da9ac7d/volume', 'rel': 'bookmark'}]} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid ... ok +POST: /v1/nodes {'uuid': '039a9d5f-a1e7-4cb7-b594-a27b49d762af', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/039a9d5f-a1e7-4cb7-b594-a27b49d762af +Openstack-Request-Id: req-c294325f-5758-4f8d-b456-c4051baa5adc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "039a9d5f-a1e7-4cb7-b594-a27b49d762af", "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", "cpus": "8", "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/039a9d5f-a1e7-4cb7-b594-a27b49d762af", "rel": "self"}, {"href": "http://localhost/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/ports", "rel": "self"}, {"href": "http://localhost/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/states", "rel": "self"}, {"href": "http://localhost/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/volume", "rel": "self"}, {"href": "http://localhost/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/volume", "rel": "bookmark"}]} +GET: /v1/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af {} +GOT:{'uuid': '039a9d5f-a1e7-4cb7-b594-a27b49d762af', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af', 'rel': 'self'}, {'href': 'http://localhost/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/039a9d5f-a1e7-4cb7-b594-a27b49d762af/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '0241bd06-a997-428b-a1e1-4204b4c3e527', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'management_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fallback_defaults +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fallback_defaults ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_address_invalid_format +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_address_invalid_format ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key ... ok +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token ... ok +ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client +ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client ... ok +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:30.820933+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:31.630911+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:31.630911+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1991181a-f6bf-4cdf-80d3-3710d1af6295', 'created_at': '2024-01-06T15:33:29.388687+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/1991181a-f6bf-4cdf-80d3-3710d1af6295', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1991181a-f6bf-4cdf-80d3-3710d1af6295', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/1991181a-f6bf-4cdf-80d3-3710d1af6295/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1991181a-f6bf-4cdf-80d3-3710d1af6295/ports', 'rel': 'bookmark'}]} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'internal_info': 'info'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a5b998c6-dbb7-47e9-8628-b946ecf70407 +Openstack-Request-Id: req-08837868-6e3e-40ed-b561-a2cc4c37769a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: Additional properties are not allowed ('internal_info' was unexpected)\", \"debuginfo\": null}"} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'invalid-format', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-49a1499c-83b1-4302-991b-74b46b405df3 +Openstack-Request-Id: req-08276a76-be06-45b8-be43-1151ab09cd39 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:10.243846+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-d196ea92-0bff-4007-b23c-01bda402e140 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': 'invalid-format'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-033e5fd0-69c2-44f1-b1b1-bc05bbe41df0 +Openstack-Request-Id: req-4d93a4dc-ed3f-47e7-82a1-623f8a39040d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/52:54:00:cf:2d:31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: invalid-format\", \"debuginfo\": null}"} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-a915eec3-dabc-402f-9276-5505513283bf +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'properties': {'bond_prop': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-01c18e27-f9c6-4484-bae4-7df07c01ff85 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad', 'properties': {'bond_prop': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-45ed9c1b-b96b-4333-8a10-063bc7507bc3 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.26 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:31.927628+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'aa:bb_cc', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} 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\"}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +Openstack-Request-Id: req-1bcdccfa-0d39-4a81-8ae5-600de7c620e9 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create portgroup with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'foo', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-da6301f3-a1ec-4467-8782-24d02e8ad217 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-cb1b448e-0307-4e92-864e-1fc6bef22d48 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:11.242202+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:32.850384+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527 +Openstack-Request-Id: req-98241a91-77af-4833-85aa-0855e74814ba +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "0241bd06-a997-428b-a1e1-4204b4c3e527", "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", "cpus": "8", "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/0241bd06-a997-428b-a1e1-4204b4c3e527", "rel": "self"}, {"href": "http://localhost/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/ports", "rel": "self"}, {"href": "http://localhost/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/states", "rel": "self"}, {"href": "http://localhost/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/volume", "rel": "self"}, {"href": "http://localhost/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/volume", "rel": "bookmark"}]} +GET: /v1/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527 {} +GOT:{'uuid': '0241bd06-a997-428b-a1e1-4204b4c3e527', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527', 'rel': 'self'}, {'href': 'http://localhost/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/0241bd06-a997-428b-a1e1-4204b4c3e527/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '72ae63ab-20fb-4f9a-9423-b4f09d7a02c7', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7 +Openstack-Request-Id: req-574cdbe9-857a-4e3d-8814-dd67f0d7c1c8 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "72ae63ab-20fb-4f9a-9423-b4f09d7a02c7", "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", "cpus": "8", "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/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7", "rel": "self"}, {"href": "http://localhost/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/ports", "rel": "self"}, {"href": "http://localhost/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/states", "rel": "self"}, {"href": "http://localhost/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/volume", "rel": "self"}, {"href": "http://localhost/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/volume", "rel": "bookmark"}]} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_field +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_field ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_029_nodes_maintenance_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_029_nodes_maintenance_delete_admin ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail ... ok +ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session +ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect ... ok +GET: /v1/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7 {} +GOT:{'uuid': '72ae63ab-20fb-4f9a-9423-b4f09d7a02c7', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7', 'rel': 'self'}, {'href': 'http://localhost/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/72ae63ab-20fb-4f9a-9423-b4f09d7a02c7/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9 +Openstack-Request-Id: req-69237eda-98c0-481d-98c4-730715b9dc9a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9", "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", "cpus": "8", "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/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9", "rel": "self"}, {"href": "http://localhost/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/ports", "rel": "self"}, {"href": "http://localhost/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/states", "rel": "self"}, {"href": "http://localhost/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/volume", "rel": "self"}, {"href": "http://localhost/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/volume", "rel": "bookmark"}]} +GET: /v1/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9 {} +GOT:{'uuid': '4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9', 'rel': 'self'}, {'href': 'http://localhost/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/4de0f9e2-0a3a-44d7-8d6f-1d7355ac88f9/volume', 'rel': 'bookmark'}]} +GOT:{'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/fc00be4f-9b3e-47de-b2ca-d56a90d8f4fd', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/fc00be4f-9b3e-47de-b2ca-d56a90d8f4fd', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +GET: /v1/deploy_templates/766ced1c-3d07-4910-92e6-6df438c399c4 {} GOT:Response: 404 Not Found Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -PATCH: /v1/portgroups/pg.1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow deploy templates\"}"} +GET: /v1/deploy_templates/5b6c0a01-c6dd-4db2-b1ec-ca6099be48ac.json {} +GOT:{'uuid': '5b6c0a01-c6dd-4db2-b1ec-ca6099be48ac', 'created_at': '2024-01-06T15:33:29.906263+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/5b6c0a01-c6dd-4db2-b1ec-ca6099be48ac', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/5b6c0a01-c6dd-4db2-b1ec-ca6099be48ac', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +GET: /v1/deploy_templates/af53ac0a-a715-4107-be77-8b7e460d5b95 {} +GOT:{'uuid': 'af53ac0a-a715-4107-be77-8b7e460d5b95', 'created_at': '2024-01-06T15:33:30.228958+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/af53ac0a-a715-4107-be77-8b7e460d5b95', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/af53ac0a-a715-4107-be77-8b7e460d5b95', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +GET: /v1/deploy_templates/37022471-bd20-4248-98e2-9f7aa26c68cc {} +GOT:{'uuid': '37022471-bd20-4248-98e2-9f7aa26c68cc', 'created_at': '2024-01-06T15:33:30.533901+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/37022471-bd20-4248-98e2-9f7aa26c68cc', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/37022471-bd20-4248-98e2-9f7aa26c68cc', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +GET: /v1/deploy_templates/37022471-bd20-4248-98e2-9f7aa26c68cc {} +GOT:{'uuid': '37022471-bd20-4248-98e2-9f7aa26c68cc', 'created_at': '2024-01-06T15:33:30.533901+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/37022471-bd20-4248-98e2-9f7aa26c68cc', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/37022471-bd20-4248-98e2-9f7aa26c68cc', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +GET: /deploy_templates/37022471-bd20-4248-98e2-9f7aa26c68cc {} +GOT:{'uuid': '37022471-bd20-4248-98e2-9f7aa26c68cc', 'created_at': '2024-01-06T15:33:30.533901+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/37022471-bd20-4248-98e2-9f7aa26c68cc', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/37022471-bd20-4248-98e2-9f7aa26c68cc', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +GET: /v1/deploy_templates {} +GOT:{'deploy_templates': [{'uuid': '28d308db-2498-43cb-bd5a-79d74ced84a4', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/28d308db-2498-43cb-bd5a-79d74ced84a4', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/28d308db-2498-43cb-bd5a-79d74ced84a4', 'rel': 'bookmark'}]}, {'uuid': '320aa834-d596-460b-88b9-bcf5f9e11e3e', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/320aa834-d596-460b-88b9-bcf5f9e11e3e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/320aa834-d596-460b-88b9-bcf5f9e11e3e', 'rel': 'bookmark'}]}, {'uuid': 'a3bb2a13-2fcd-4423-9e4d-e2786577369a', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/a3bb2a13-2fcd-4423-9e4d-e2786577369a', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a3bb2a13-2fcd-4423-9e4d-e2786577369a', 'rel': 'bookmark'}]}, {'uuid': 'a17f1278-1f2f-4ee3-a7dd-f258304c4e77', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/a17f1278-1f2f-4ee3-a7dd-f258304c4e77', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a17f1278-1f2f-4ee3-a7dd-f258304c4e77', 'rel': 'bookmark'}]}, {'uuid': '3f1bb9dc-935b-403f-bce0-b3c2d7e48494', 'name': 'CUSTOM_DT4', 'links': [{'href': 'http://localhost/v1/deploy_templates/3f1bb9dc-935b-403f-bce0-b3c2d7e48494', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3f1bb9dc-935b-403f-bce0-b3c2d7e48494', 'rel': 'bookmark'}]}]} +GET: /v1/deploy_templates {} +GOT:{'deploy_templates': [{'uuid': '3e4f97b8-cd74-4e34-931d-fe4bc510cb94', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/3e4f97b8-cd74-4e34-931d-fe4bc510cb94', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3e4f97b8-cd74-4e34-931d-fe4bc510cb94', 'rel': 'bookmark'}]}]} +GET: /v1/deploy_templates/34299e72-cca1-4236-bd22-196421300eea {} +GOT:{'uuid': '34299e72-cca1-4236-bd22-196421300eea', 'created_at': '2024-01-06T15:33:31.893154+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/34299e72-cca1-4236-bd22-196421300eea', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/34299e72-cca1-4236-bd22-196421300eea', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': [], 'password': '******'}, 'priority': 10}]} +GET: /v1/deploy_templates?sort_key=uuid {} +GOT:{'deploy_templates': [{'uuid': '5a647946-b50e-469a-8de8-d5eae861ab44', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/5a647946-b50e-469a-8de8-d5eae861ab44', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/5a647946-b50e-469a-8de8-d5eae861ab44', 'rel': 'bookmark'}]}, {'uuid': '5cb35a01-a686-426d-a182-4eac8016bab6', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/5cb35a01-a686-426d-a182-4eac8016bab6', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/5cb35a01-a686-426d-a182-4eac8016bab6', 'rel': 'bookmark'}]}, {'uuid': 'f8a861d3-9640-4540-8e3e-319dbc92e29f', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/f8a861d3-9640-4540-8e3e-319dbc92e29f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/f8a861d3-9640-4540-8e3e-319dbc92e29f', 'rel': 'bookmark'}]}]} +GET: /v1/deploy_templates?sort_key=name&detail=False {} +GOT:{'deploy_templates': [{'uuid': '6b307801-5259-4c9b-9fc3-24532ba0c546', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/6b307801-5259-4c9b-9fc3-24532ba0c546', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/6b307801-5259-4c9b-9fc3-24532ba0c546', 'rel': 'bookmark'}]}, {'uuid': '21f76be8-28de-4548-b9cf-4386a18d7b7f', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/21f76be8-28de-4548-b9cf-4386a18d7b7f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/21f76be8-28de-4548-b9cf-4386a18d7b7f', 'rel': 'bookmark'}]}, {'uuid': '805fa00a-dd26-48ee-b942-374fb04f0b87', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/805fa00a-dd26-48ee-b942-374fb04f0b87', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/805fa00a-dd26-48ee-b942-374fb04f0b87', 'rel': 'bookmark'}]}]} +GET: /v1/deploy_templates?sort_key=extra {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-4f183ee2-6eae-46b0-ac3a-04cf044bb7d5 +Openstack-Request-Id: req-af06a6c9-2f53-426d-beb7-2339162a58f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:11.776136+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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/pg.1.json [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"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 {} +ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs +ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs ... ok +ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_cleaning +ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_cleaning ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address ... ok +POST: /v1/nodes {'uuid': 'c8d02c96-b479-455e-b1ce-14bd1e6cddb0', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -Openstack-Request-Id: req-d877ec89-ec0e-45bc-a701-5b2fe93c3d1f +Location: http://localhost/v1/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0 +Openstack-Request-Id: req-5f6e5aa0-7b9f-4e56-af7e-c89d23197bba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:11.986697+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name -ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name -ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid -ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_rescue -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_rescue ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy_with_deploy_steps -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy_with_deploy_steps ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_no_enabled_interfaces -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_no_enabled_interfaces ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_locked -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_locked ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down ... ok -ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_from_all_nodes_one_pass -ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_from_all_nodes_one_pass ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_clears_conductor_locks -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_clears_conductor_locks ... ok -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ramdisk_params -ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ramdisk_params ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable -ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_invalid -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_invalid ... ok -ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config -ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok ... ok -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot_fail -ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot_fail ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged_combine_ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged_combine_ok ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir ... ok -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "c8d02c96-b479-455e-b1ce-14bd1e6cddb0", "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", "cpus": "8", "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/c8d02c96-b479-455e-b1ce-14bd1e6cddb0", "rel": "self"}, {"href": "http://localhost/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/ports", "rel": "self"}, {"href": "http://localhost/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/states", "rel": "self"}, {"href": "http://localhost/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/volume", "rel": "self"}, {"href": "http://localhost/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/volume", "rel": "bookmark"}]} +GET: /v1/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0 {} +GOT:{'uuid': 'c8d02c96-b479-455e-b1ce-14bd1e6cddb0', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8d02c96-b479-455e-b1ce-14bd1e6cddb0/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': 'f8384476-a79b-4236-9588-9c9872f84ac6', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_instance_info_override +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_instance_info_override ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-47377b52-19dc-4727-a1fd-8cd70061184a +Location: http://localhost/v1/nodes/f8384476-a79b-4236-9588-9c9872f84ac6 +Openstack-Request-Id: req-9ef6ae2d-f768-4ea6-ad0f-d895d95acfc8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "f8384476-a79b-4236-9588-9c9872f84ac6", "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", "cpus": "8", "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/f8384476-a79b-4236-9588-9c9872f84ac6", "rel": "self"}, {"href": "http://localhost/nodes/f8384476-a79b-4236-9588-9c9872f84ac6", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/ports", "rel": "self"}, {"href": "http://localhost/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/states", "rel": "self"}, {"href": "http://localhost/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/volume", "rel": "self"}, {"href": "http://localhost/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/volume", "rel": "bookmark"}]} +GET: /v1/nodes/f8384476-a79b-4236-9588-9c9872f84ac6 {} +GOT:{'uuid': 'f8384476-a79b-4236-9588-9c9872f84ac6', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/f8384476-a79b-4236-9588-9c9872f84ac6', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8384476-a79b-4236-9588-9c9872f84ac6', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8384476-a79b-4236-9588-9c9872f84ac6/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -Openstack-Request-Id: req-6fe51d5b-2658-4caa-90ba-770569a6240c +Location: http://localhost/v1/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4 +Openstack-Request-Id: req-8807552b-bf0b-48a1-91b5-f3e612468c9f X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4", "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", "cpus": "8", "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/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4", "rel": "self"}, {"href": "http://localhost/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/ports", "rel": "self"}, {"href": "http://localhost/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/states", "rel": "self"}, {"href": "http://localhost/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/volume", "rel": "self"}, {"href": "http://localhost/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/volume", "rel": "bookmark"}]} +ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg +ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg ... ok +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token ... ok +ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_inspecting +ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_inspecting ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortsCollection.test__get_ports_collection +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortsCollection.test__get_ports_collection ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-a427a511-f73c-42af-a010-ee7035a05cf2 +Openstack-Request-Id: req-acdbd097-519e-4dbc-9f2c-6753ee10b0ea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 @@ -14047,7 +12734,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-eb95959a-8960-44a0-b4f3-30faf1e31f86 +Openstack-Request-Id: req-34079240-3bd6-447a-b3a4-da70c4ee5a6a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 @@ -14055,7 +12742,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-2d8eae84-7ac8-4c22-868d-ca57cf0ab283 +Openstack-Request-Id: req-604c4e75-5c2b-4499-9c81-e5dcffdbe827 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -14063,7 +12750,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'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-efc991ca-939a-4386-94a7-f5c863aa664b +Openstack-Request-Id: req-8c7a638c-7114-48ab-8f23-64cd18d6496a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 @@ -14071,7 +12758,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'provide'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-f8bbe424-c862-41d8-90e1-0b9850509499 +Openstack-Request-Id: req-b3cc5687-24e6-4e13-aa47-d8a978a061c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 @@ -14079,7 +12766,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-6138e611-bdcf-4853-b284-7ff574f74eee +Openstack-Request-Id: req-fd701a13-f9d2-4fb3-b822-e784d32ed747 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -14087,7 +12774,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-69cc857f-f3b7-45b3-8679-364120d067dd +Openstack-Request-Id: req-a0bf351d-8cb5-4c3a-b0ef-201f81394e2f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -14095,7 +12782,7 @@ PUT: /v1/nodes/node-39/states/provision {'target': 'active'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/node-39/states -Openstack-Request-Id: req-ba778c28-1ac3-4c67-bdc9-c38ac5810594 +Openstack-Request-Id: req-27a878f5-03b2-414a-a061-b64ff37a2c0c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 @@ -14103,7 +12790,7 @@ PUT: /v1/nodes/node-39/states/provision {'target': 'active'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1722abb1-0ba2-4051-bcf1-fe36c852db5e +Openstack-Request-Id: req-f061f9c7-8531-4d95-be2f-9f3bb0ead2e3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -14111,7 +12798,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-9e56dfd5-500f-4654-8877-07a2607222f2 +Openstack-Request-Id: req-16176c77-8299-41c9-abd2-d4188dd67fbe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 @@ -14119,7 +12806,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'not-supported'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c6d272f3-7fcf-4b5f-9767-d2556aedcf02 +Openstack-Request-Id: req-7b29c27a-b6ef-4557-8a73-674e86392704 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -14127,7 +12814,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-ff42531c-fe7b-4e8a-a87c-5b899d0cca29 +Openstack-Request-Id: req-f9a88c60-c88e-4743-ab16-2c03a40c6218 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -14135,7 +12822,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-eb6057c2-4194-4917-ad0d-c9eba6ef1da5 +Openstack-Request-Id: req-9a4c9303-773d-40a8-9220-7e1049b0e58a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -14143,7 +12830,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': ' '} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e59fa25a-ab5e-4dd7-943e-106a6d1590e4 +Openstack-Request-Id: req-3ee1d5d3-ebc9-4b50-8f4c-2d4a0b1f519f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -14151,1114 +12838,660 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-194093b7-c9a6-45f2-9924-97de81117b70 +Openstack-Request-Id: req-38eb0fe7-81e4-490e-b92e-067ba332a272 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'target': 'rescue', 'rescue_password': 'password'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-62c1bdd1-3d5a-489f-a6c6-b289d4bb215e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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 {'target': 'rescue', 'rescue_password': 'password'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-c7afd3a2-5359-4876-95b7-682e2af51ca6 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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 {'target': 'rescue', 'rescue_password': 'password'} +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid_old +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid_old ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_030_nodes_maintenance_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_030_nodes_maintenance_delete_member ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states ... ok -ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_two_pass -ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_two_pass ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_datapath_id -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_datapath_id ... ok -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\"}"} -PATCH: /v1/deploy_templates/CUSTOM_DT1.json [{'path': '/steps/0/interface', 'value': 'bios', 'op': 'replace'}] -GOT:Response: 200 OK +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok ... ok +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_invalid_power_update +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_invalid_power_update ... ok +GET: /v1/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4 {} +GOT:{'uuid': '6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c45671d-7ac3-40b3-808f-5d9ee1a9cfa4/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '19faefab-4773-4118-b086-1b8e3e91ddb1', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -Openstack-Request-Id: req-06332cd9-c0f9-45b1-8250-e6671c9cc05d +Location: http://localhost/v1/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1 +Openstack-Request-Id: req-844d5977-0876-4490-9a4b-c9cc4f4a65c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "8f395cd2-c2a9-4e34-b708-04cafdb7c4b1", "created_at": "2025-02-07T21:28:12.193469+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/8f395cd2-c2a9-4e34-b708-04cafdb7c4b1", "rel": "self"}, {"href": "http://localhost/deploy_templates/8f395cd2-c2a9-4e34-b708-04cafdb7c4b1", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -PATCH: /v1/deploy_templates/e0a2cf2f-7e6f-4d6b-98e1-9eb8f1e2bacd [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "19faefab-4773-4118-b086-1b8e3e91ddb1", "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", "cpus": "8", "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/19faefab-4773-4118-b086-1b8e3e91ddb1", "rel": "self"}, {"href": "http://localhost/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/ports", "rel": "self"}, {"href": "http://localhost/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/states", "rel": "self"}, {"href": "http://localhost/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/volume", "rel": "self"}, {"href": "http://localhost/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/volume", "rel": "bookmark"}]} +GET: /v1/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1 {} +GOT:{'uuid': '19faefab-4773-4118-b086-1b8e3e91ddb1', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1', 'rel': 'self'}, {'href': 'http://localhost/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/19faefab-4773-4118-b086-1b8e3e91ddb1/volume', 'rel': 'bookmark'}]} +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:32.457369+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:33.158803+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:33.158803+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_none +ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_none ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg +ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed ... ok +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces ... ok +ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_provisioning +ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_provisioning ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files +ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id ... ok +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 ... ok +ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_rescuing +ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_rescuing ... ok GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-98d20568-1c96-4c60-9c8e-7245cddc5042 +Openstack-Request-Id: req-f4acdc1a-04b5-4a2e-9c36-b3f3f748f660 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/deploy_templates/247b4c07-a6bf-4a70-b5d7-0c3da5a3e054 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] +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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ee4e908b-5e16-4e04-bb2b-d3321fd392c6 +Openstack-Request-Id: req-f3913c69-32a8-4c9f-9020-1a0db0298cb0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "247b4c07-a6bf-4a70-b5d7-0c3da5a3e054", "created_at": "2025-02-07T21:28:12.771328+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/247b4c07-a6bf-4a70-b5d7-0c3da5a3e054", "rel": "self"}, {"href": "http://localhost/deploy_templates/247b4c07-a6bf-4a70-b5d7-0c3da5a3e054", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -PATCH: /v1/deploy_templates/be3d157f-e069-44af-b44b-980cda0b6c9d [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.25 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:30.283956+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", "cpus": "8", "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"}]} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'op': 'remove'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-979cabd1-40b1-491e-a8d1-26248d9bd4f7 +Openstack-Request-Id: req-0732f2b5-7923-4fb0-bba5-0915bacaf8d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "be3d157f-e069-44af-b44b-980cda0b6c9d", "created_at": "2025-02-07T21:28:12.994581+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/be3d157f-e069-44af-b44b-980cda0b6c9d", "rel": "self"}, {"href": "http://localhost/deploy_templates/be3d157f-e069-44af-b44b-980cda0b6c9d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -PATCH: /v1/deploy_templates/ffbaf8a9-d9e3-4cfe-856c-7010a710abdf [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/last_error', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d4cdb3a0-8949-48c2-888a-d78867003fde -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template ffbaf8a9-d9e3-4cfe-856c-7010a710abdf could not be found.\", \"debuginfo\": null}"} -POST: /v1/events {'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-e743a352-6231-4d89-b8ce-61df45a376c7 +Openstack-Request-Id: req-6aaeb04b-bb98-4511-a15d-ca9a7a7153d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -POST: /v1/events {'events': [{'INVALID': 'fake.event'}]} +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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-43c070ab-e3b2-45bd-8088-f5c33f785741 +Openstack-Request-Id: req-904222f3-bf9d-4ead-945d-89ebd413cbdd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"} -POST: /v1/events {'events': [{'event': 'invalid.event'}]} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'driver' is a required property\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-974f8b2a-7dd9-4656-a325-e1e7f6d0b7c1 +Openstack-Request-Id: req-87566b63-2049-43b6-9a84-bd56b84dcc65 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/events {'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 +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 a non-existent object 'non-existent'\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4f8efca0-4f19-4b62-a656-3ed2a11a9d95 +Openstack-Request-Id: req-170e7d38-da9c-4c07-b028-82b739be9a77 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/events {'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-af495a2b-fce4-4a15-9b23-c3db791a75ac -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -POST: /v1/events {'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-1462185e-d299-4933-ab03-879d24a4ae46 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -POST: /v1/events {'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'}]} -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_delete_port_events -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_delete_port_events ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_host_id -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_host_id ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_vnic_type -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_vnic_type ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_device_id -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_device_id ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_mac_address -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_mac_address ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_port_id -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_port_id ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_status -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_status ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unbind_port_events -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unbind_port_events ... ok -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unknown_event_property -ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unknown_event_property ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_001_values -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_001_values ... skipped 'These are fake reference values for YAML templating' -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_002_nodes_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_002_nodes_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_003_nodes_post_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_003_nodes_post_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_004_nodes_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_004_nodes_post_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_005_nodes_get_node_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_005_nodes_get_node_admin ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_empty_value -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_empty_value ... ok -ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_with_days -ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_with_days ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient ... ok -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:33.238345+00:00", "updated_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", "cpus": "8", "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"}]} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/uuid', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-212cf4ee-3560-421b-83a8-5be152741d93 +Openstack-Request-Id: req-dec7343a-76a8-4111-bfdb-ce8c7c33e041 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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?conductor=like.shadows {} -GOT:{'nodes': []} -GET: /v1/nodes?conductor=like.shadows {} -GOT:{'nodes': []} -GET: /v1/nodes?conductor=fake.conductor {} -GOT:Response: 500 Internal Server Error +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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'value': '1', 'op': 'replace'}] +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found ... ok +POST: /v1/nodes {'uuid': '6d1826d6-c27b-4262-8754-66f25789396e', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -Openstack-Request-Id: req-077e0905-e1c6-4b20-8807-59bb2f382afb +Location: http://localhost/v1/nodes/6d1826d6-c27b-4262-8754-66f25789396e +Openstack-Request-Id: req-09c21300-dac7-495d-acb0-39dac934ce7c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes?conductor=rocky.rocks {} +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "6d1826d6-c27b-4262-8754-66f25789396e", "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", "cpus": "8", "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/6d1826d6-c27b-4262-8754-66f25789396e", "rel": "self"}, {"href": "http://localhost/nodes/6d1826d6-c27b-4262-8754-66f25789396e", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/6d1826d6-c27b-4262-8754-66f25789396e/ports", "rel": "self"}, {"href": "http://localhost/nodes/6d1826d6-c27b-4262-8754-66f25789396e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6d1826d6-c27b-4262-8754-66f25789396e/states", "rel": "self"}, {"href": "http://localhost/nodes/6d1826d6-c27b-4262-8754-66f25789396e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6d1826d6-c27b-4262-8754-66f25789396e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6d1826d6-c27b-4262-8754-66f25789396e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6d1826d6-c27b-4262-8754-66f25789396e/volume", "rel": "self"}, {"href": "http://localhost/nodes/6d1826d6-c27b-4262-8754-66f25789396e/volume", "rel": "bookmark"}]} +GET: /v1/nodes/6d1826d6-c27b-4262-8754-66f25789396e {} +GOT:{'uuid': '6d1826d6-c27b-4262-8754-66f25789396e', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/6d1826d6-c27b-4262-8754-66f25789396e', 'rel': 'self'}, {'href': 'http://localhost/nodes/6d1826d6-c27b-4262-8754-66f25789396e', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/6d1826d6-c27b-4262-8754-66f25789396e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6d1826d6-c27b-4262-8754-66f25789396e/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/6d1826d6-c27b-4262-8754-66f25789396e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/6d1826d6-c27b-4262-8754-66f25789396e/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/6d1826d6-c27b-4262-8754-66f25789396e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/6d1826d6-c27b-4262-8754-66f25789396e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/6d1826d6-c27b-4262-8754-66f25789396e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/6d1826d6-c27b-4262-8754-66f25789396e/volume', 'rel': 'bookmark'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-79fc5137-dbfa-4608-8257-76368e1e784d +Openstack-Request-Id: req-2b67bb99-b70b-4015-b786-73abbd4482d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes?description_contains=cat {} -GOT:{'nodes': [{'uuid': '8bc2fd68-a4eb-4d12-a35a-3304bed3842d', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/8bc2fd68-a4eb-4d12-a35a-3304bed3842d', 'rel': 'self'}, {'href': 'http://localhost/nodes/8bc2fd68-a4eb-4d12-a35a-3304bed3842d', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?description_contains=dog {} -GOT:{'nodes': [{'uuid': 'b7c9121d-55e5-40cc-bdf3-7571415d96f0', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/b7c9121d-55e5-40cc-bdf3-7571415d96f0', 'rel': 'self'}, {'href': 'http://localhost/nodes/b7c9121d-55e5-40cc-bdf3-7571415d96f0', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?driver=ipmi {} -GOT:{'nodes': [{'uuid': '01b41b76-fef1-4051-bdb3-02a2c644615c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/01b41b76-fef1-4051-bdb3-02a2c644615c', 'rel': 'self'}, {'href': 'http://localhost/nodes/01b41b76-fef1-4051-bdb3-02a2c644615c', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?driver=fake-hardware {} -GOT:{'nodes': [{'uuid': 'c482cef0-3e5d-43c3-8ee5-68031f12a762', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/c482cef0-3e5d-43c3-8ee5-68031f12a762', 'rel': 'self'}, {'href': 'http://localhost/nodes/c482cef0-3e5d-43c3-8ee5-68031f12a762', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?driver=fake {} +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-9ec844e9-2481-4a2e-8aa3-987f2c3478bd +Openstack-Request-Id: req-9e290dec-8e43-428e-8b2f-7a5cd11b5834 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes?fault=power failure {} -GOT:{'nodes': [{'uuid': 'b72d96a1-dbfa-4b89-a2f9-524f9af33ef4', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/b72d96a1-dbfa-4b89-a2f9-524f9af33ef4', 'rel': 'self'}, {'href': 'http://localhost/nodes/b72d96a1-dbfa-4b89-a2f9-524f9af33ef4', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?fault=clean failure {} -GOT:{'nodes': [{'uuid': '6322f1ef-50a7-4e3f-9c30-db99e00a51f6', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/6322f1ef-50a7-4e3f-9c30-db99e00a51f6', 'rel': 'self'}, {'href': 'http://localhost/nodes/6322f1ef-50a7-4e3f-9c30-db99e00a51f6', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?fault=power failure {} -GOT:{'nodes': [{'uuid': 'b72d96a1-dbfa-4b89-a2f9-524f9af33ef4', 'created_at': '2025-02-07T21:28:13.809026+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': 'power failure', 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/b72d96a1-dbfa-4b89-a2f9-524f9af33ef4', 'rel': 'self'}, {'href': 'http://localhost/nodes/b72d96a1-dbfa-4b89-a2f9-524f9af33ef4', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/b72d96a1-dbfa-4b89-a2f9-524f9af33ef4/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b72d96a1-dbfa-4b89-a2f9-524f9af33ef4/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b72d96a1-dbfa-4b89-a2f9-524f9af33ef4/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b72d96a1-dbfa-4b89-a2f9-524f9af33ef4/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b72d96a1-dbfa-4b89-a2f9-524f9af33ef4/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b72d96a1-dbfa-4b89-a2f9-524f9af33ef4/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b72d96a1-dbfa-4b89-a2f9-524f9af33ef4/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b72d96a1-dbfa-4b89-a2f9-524f9af33ef4/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?fault=clean failure {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_indicator_state -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_indicator_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_invalid_key -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_invalid_key ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_local_link_keys_mandatory -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_local_link_keys_mandatory ... ok -ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work -ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_recovers -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_recovers ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_with_token -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_with_token ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_missing_local_link_mandatory_key -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_missing_local_link_mandatory_key ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_not_mac_or_datapath_id -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_not_mac_or_datapath_id ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked ... ok -ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_not_other_conductor -ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_not_other_conductor ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_hostname_missing -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_hostname_missing ... ok -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'deploy_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_no_esp_imageimg +ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_no_esp_imageimg ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_031_nodes_maintenance_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_031_nodes_maintenance_delete_observer ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password ... ok +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_3 +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_3 ... ok +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T15:33:32.850384+00:00', 'updated_at': None, 'address': 'aa:aa:aa:11:22:33', 'extra': {}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'foo', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-587905ca-c155-46bd-89ab-6dc7a94e2b7b +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-a23c0f24-c8c9-422d-859a-42628f2de2ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:10.903238+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -ACL Test GOT Response: 200 OK +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:33.396929+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T15:33:33.396929+00:00', 'updated_at': None, 'address': None, 'extra': {}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {'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-587905ca-c155-46bd-89ab-6dc7a94e2b7b +Openstack-Request-Id: req-4021110b-2237-44b4-8c23-f2bf09e76c01 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:10.903238+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_007_nodes_get_node_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_007_nodes_get_node_reader ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_008_nodes_get_node_other_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_008_nodes_get_node_other_admin ... skipped 'Not implemented yet' -ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg -ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_mandatory -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_mandatory ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree ... ok -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: 'node_uuid' is a required property\", \"debuginfo\": null}"} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b52e6551-8ced-4a15-9310-41bffb085ea8 +Openstack-Request-Id: req-49dd67b5-c3d9-4921-abce-516ebbef0e65 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:10.495561+00:00", "updated_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", "cpus": "8", "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"}]} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-9d5a2976-debf-4945-8575-c943b4b2e614 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-dcd8ff3f-a77a-4de8-8259-6bfa96471a6f X-Openstack-Ironic-Api-Maximum-Version: 1.80 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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/874c0350-5c46-457f-90e6-3e7efdaadf71 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 409 Conflict +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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-127da958-051f-4c1d-93ba-f6652c5455e2 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-29e409ad-0ffc-4c5d-acae-9f28c8b16aa0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 874c0350-5c46-457f-90e6-3e7efdaadf71 can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/befcc8ea-b0df-432d-a25c-e70c2f923482 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:35.161598+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {} +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default ... ok +ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_tenant +ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_tenant ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_with_ExecutionError +ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_with_ExecutionError ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized ... ok +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_4 +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_4 ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing ... ok +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2024-01-06T15:33:27.499960+00:00', 'updated_at': None, '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/nodes {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-76960c51-323d-42c2-8308-06562c8a0de6 +Openstack-Request-Id: req-f8c488c2-e9e5-4cca-bf67-bdf13d03e991 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "befcc8ea-b0df-432d-a25c-e70c2f923482", "created_at": "2025-02-07T21:28:11.446544+00:00", "updated_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", "cpus": "8", "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/befcc8ea-b0df-432d-a25c-e70c2f923482", "rel": "self"}, {"href": "http://localhost/nodes/befcc8ea-b0df-432d-a25c-e70c2f923482", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/befcc8ea-b0df-432d-a25c-e70c2f923482/ports", "rel": "self"}, {"href": "http://localhost/nodes/befcc8ea-b0df-432d-a25c-e70c2f923482/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': ''}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis id not specified.\", \"debuginfo\": null}"} +GET: /v1/chassis {} +GOT:{'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?sort_key=uuid {} +GOT:{'chassis': [{'uuid': '3aadba0c-c574-480e-8d59-f90cc97ff934', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/3aadba0c-c574-480e-8d59-f90cc97ff934', 'rel': 'self'}, {'href': 'http://localhost/chassis/3aadba0c-c574-480e-8d59-f90cc97ff934', 'rel': 'bookmark'}]}, {'uuid': 'afcbc19f-9761-4de4-801f-0e2f42f67152', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/afcbc19f-9761-4de4-801f-0e2f42f67152', 'rel': 'self'}, {'href': 'http://localhost/chassis/afcbc19f-9761-4de4-801f-0e2f42f67152', 'rel': 'bookmark'}]}, {'uuid': 'ce0dc67b-2f47-409f-941e-4160a6cf0957', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/ce0dc67b-2f47-409f-941e-4160a6cf0957', 'rel': 'self'}, {'href': 'http://localhost/chassis/ce0dc67b-2f47-409f-941e-4160a6cf0957', 'rel': 'bookmark'}]}]} +GET: /v1/chassis?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8093e162-e191-4dc9-a49a-d38a1fbe8603 +Openstack-Request-Id: req-64e6bb02-ce60-4104-a93e-c59b33e6982a X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': ''}] -GOT:Response: 406 Not Acceptable +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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e7625ca8-0881-4ab1-95f7-aa22b3ef8763 +Openstack-Request-Id: req-1422e7a9-9f74-46cd-ac5e-b54c1d0def75 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'i am invalid'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-7a9384f9-0cc9-48aa-97b7-4020acdba35d +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': '7940513c-7022-42dd-ba58-9ba37c525892'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-1e13e676-fd15-451d-a48d-41bd9d19fe3d X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'guido-van-rossum'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-d8b29858-d0fd-492c-9e1e-c8cb158ebb83 +X-Openstack-Ironic-Api-Version: 1.28 + +POST: /v1/nodes/node-39/vifs {'id': 'ac0df145-d1f8-4d8c-bde2-598572d32e3e'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-010e4684-8cd6-407c-96b1-a5e5563a10c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 -{"uuid": "deadbeef-0000-1111-2222-333333333333", "created_at": "2025-02-07T21:28:12.713275+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", "cpus": "8", "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"}]} -PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'maintenance'}] +X-Openstack-Ironic-Api-Version: 1.28 + +POST: /v1/nodes/node-39/vifs {'id': 'e534db1d-9468-4ca9-9183-72d503ee6a6e'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1080d7c7-6527-4982-8058-5568042d4db2 +Openstack-Request-Id: req-f1afa092-5140-4a66-bd54-bce3618ef341 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 [{'path': '/name', 'op': 'add', 'value': 'management'}] -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail -ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_port_id_missing -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_port_id_missing ... ok -ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg -ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg ... ok -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'network_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.28 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"boom\", \"debuginfo\": null}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'invalid%id^'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-489bea0f-fbcd-4e1b-ba69-a541a3439b94 +Openstack-Request-Id: req-fceb4c05-c917-4c3a-be74-9a3749f5df1d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'storage_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.28 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID or name for id: invalid%id^\", \"debuginfo\": null}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'bad_id': '53469d8e-fa5e-4771-bf7a-812ce84f47bb'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c06bc461-a1d1-4b0b-b369-22bd97a8968e +Openstack-Request-Id: req-97be05ee-4971-473c-a54b-ec737ed67a9f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.28 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vif: 'id' is a required property\", \"debuginfo\": null}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': '62fceb1b-547c-455c-af03-2a8dad3f7981'} +GOT:Response: 409 Conflict Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-18b7e2bd-d60b-4000-8ea2-5da96805bdad +Openstack-Request-Id: req-9c6c8a0a-3de2-4c71-b600-58faccc56507 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:09.027633+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": "project", "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", "cpus": "8", "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, "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 {} -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee_old_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_with_optional -ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_with_optional ... ok -ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success -ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_indicators -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_indicators ... ok -ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg -ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache ... ok -GOT:{'node': {'uuid': '36a61883-60c1-4bae-95ab-478a20d56689', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/36a61883-60c1-4bae-95ab-478a20d56689', 'rel': 'self'}, {'href': 'http://localhost/nodes/36a61883-60c1-4bae-95ab-478a20d56689', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': '234567890', 'agent_token_required': True}} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} +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}"} +POST: /v1/nodes/doesntexist/vifs {'id': 'dea7cf68-62c7-4a0e-9706-63f2c71b8fcc'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a679a0d6-3f49-420a-abf6-f4d00e933974 +Openstack-Request-Id: req-75ef17a9-6b52-485e-ad58-059a87db5a72 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} -GET: /v1/lookup {} +X-Openstack-Ironic-Api-Version: 1.28 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'b5e0fb75-660a-42d4-9919-268296839363', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-cecb6b94-f644-49de-9896-a81acdaa070e +Openstack-Request-Id: req-5728915d-0325-48a2-b086-97bbd96eb38e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-d7b5913f-b6d2-40b4-92e4-0e27f1da16ff -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=88147689-5101-4abb-a85d-8d081ed866f5 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-e5ef4b1e-cd3f-4724-91b5-4a21e2d61134 +X-Openstack-Ironic-Api-Version: 1.67 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot specify both port_uuid and portgroup_uuid\", \"debuginfo\": null}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': '9dd8fafa-a85f-4c51-a028-924e2d1b4d5e', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-93902a45-3d6b-4d38-8f92-2e43cee4f269 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} -POST: /v1/volume/targets {'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-f17b73b9-4f34-4b1a-a834-4c03a6d43a11 +X-Openstack-Ironic-Api-Version: 1.28 + +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/a49361d7-5217-482d-bc57-e0e53bb5743a +GOT:Response: 204 No Content +Openstack-Request-Id: req-48048054-16ed-420a-8b6c-6f0cd825d66e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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'} -POST: /v1/volume/targets {'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-46f8433a-1388-4626-975a-cde01a518800 +X-Openstack-Ironic-Api-Version: 1.28 + +DELETE: /v1/nodes/node-39/vifs/253744e4-9e82-4cb7-bbdc-6cc7a7d5d02b +GOT:Response: 204 No Content +Openstack-Request-Id: req-a83fd940-14c1-4d47-80a7-093f82fafe27 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:16.823196+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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:16.823196+00:00', 'updated_at': None, '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'} -POST: /v1/volume/targets {'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 +X-Openstack-Ironic-Api-Version: 1.28 + +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/854cdf25-9518-480f-a042-76db1b32288b +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-3afafa03-ba4a-4a47-8fb6-8f450db8bba3 +Openstack-Request-Id: req-4031cb2b-9fa5-4f2e-abd5-6d7e24343c2c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} -POST: /v1/volume/targets {'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 +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}"} +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:34.009745+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'inspecting', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:34.009745+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'inspect wait', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:34.715008+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': '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 {} +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fails_no_grub_cfg +ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fails_no_grub_cfg ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits ... ok +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_5 +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_5 ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_hidden_in_lower_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_032_nodes_management_boot_device_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_032_nodes_management_boot_device_put_admin ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states ... ok +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/volume/targets/4d95d42c-9cb8-401c-9d57-735706546399 -Openstack-Request-Id: req-6ace1eaa-306c-4483-a452-58650eb2a401 +Openstack-Request-Id: req-94c818ca-c6b8-4ac0-b756-c3413a242394 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "4d95d42c-9cb8-401c-9d57-735706546399", "created_at": "2025-02-07T21:28:17.233614+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/4d95d42c-9cb8-401c-9d57-735706546399", "rel": "self"}, {"href": "http://localhost/volume/targets/4d95d42c-9cb8-401c-9d57-735706546399", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -GET: /v1/volume/targets/4d95d42c-9cb8-401c-9d57-735706546399 {} -GOT:{'uuid': '4d95d42c-9cb8-401c-9d57-735706546399', 'created_at': '2025-02-07T21:28:17.233614+00:00', 'updated_at': None, 'boot_index': 0, 'extra': {}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/4d95d42c-9cb8-401c-9d57-735706546399', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/4d95d42c-9cb8-401c-9d57-735706546399', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping ... ok -ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled -ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled ... ok -ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled -ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_check_exception_IncompatibleInterface -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_check_exception_IncompatibleInterface ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type ... ok -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth ... ok -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth ... ok -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail ... ok -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set ... ok -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name ... ok -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid ... ok -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate ... ok -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure ... ok -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_default_noop -ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_default_noop ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_no_source -ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_no_source ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_raises_exception_with_absolute_path -ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_raises_exception_with_absolute_path ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files -ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_chmod -ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_chmod ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_copy -ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_copy ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_relative_path -ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_relative_path ... ok -ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start -ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start ... ok -ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start_failure -ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start_failure ... ok -ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start_no_rpc -ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start_no_rpc ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ -ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object -ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails -ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails -ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object -ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc -ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found -ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url -ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object -ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta -ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta ... ok -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations ... ok -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation ... ok -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation_with_node_id -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation_with_node_id ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error ... ok -ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg -ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps ... ok -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache ... ok -GOT:{'uuid': 'f57e6dc7-e146-44c1-92b2-b596a9910813', 'created_at': '2025-02-07T21:28:11.466019+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/f57e6dc7-e146-44c1-92b2-b596a9910813', 'rel': 'self'}, {'href': 'http://localhost/ports/f57e6dc7-e146-44c1-92b2-b596a9910813', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/ports/f57e6dc7-e146-44c1-92b2-b596a9910813 {} -GOT:{'uuid': 'f57e6dc7-e146-44c1-92b2-b596a9910813', 'created_at': '2025-02-07T21:28:11.466019+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/f57e6dc7-e146-44c1-92b2-b596a9910813', 'rel': 'self'}, {'href': 'http://localhost/ports/f57e6dc7-e146-44c1-92b2-b596a9910813', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /ports/f57e6dc7-e146-44c1-92b2-b596a9910813 {} -GOT:{'uuid': 'f57e6dc7-e146-44c1-92b2-b596a9910813', 'created_at': '2025-02-07T21:28:11.466019+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/f57e6dc7-e146-44c1-92b2-b596a9910813', 'rel': 'self'}, {'href': 'http://localhost/ports/f57e6dc7-e146-44c1-92b2-b596a9910813', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/ports/ad827563-1adc-4695-8b45-c24d0ebf824d {} -GOT:{'uuid': 'ad827563-1adc-4695-8b45-c24d0ebf824d', 'created_at': '2025-02-07T21:28:11.760058+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/ad827563-1adc-4695-8b45-c24d0ebf824d', 'rel': 'self'}, {'href': 'http://foo/ports/ad827563-1adc-4695-8b45-c24d0ebf824d', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/ports/ad827563-1adc-4695-8b45-c24d0ebf824d {} -GOT:{'uuid': 'ad827563-1adc-4695-8b45-c24d0ebf824d', 'created_at': '2025-02-07T21:28:11.760058+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/ad827563-1adc-4695-8b45-c24d0ebf824d', 'rel': 'self'}, {'href': 'http://foo/ports/ad827563-1adc-4695-8b45-c24d0ebf824d', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /ports/ad827563-1adc-4695-8b45-c24d0ebf824d {} -GOT:{'uuid': 'ad827563-1adc-4695-8b45-c24d0ebf824d', 'created_at': '2025-02-07T21:28:11.760058+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/ad827563-1adc-4695-8b45-c24d0ebf824d', 'rel': 'self'}, {'href': 'http://foo/ports/ad827563-1adc-4695-8b45-c24d0ebf824d', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/ports/detail {} -GOT:{'ports': [{'uuid': 'af9d9274-4ea6-46c7-b718-c7ca3efa8303', 'created_at': '2025-02-07T21:28:12.288059+00:00', 'updated_at': None, 'address': '66:44:55:33:11:22', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/af9d9274-4ea6-46c7-b718-c7ca3efa8303', 'rel': 'self'}, {'href': 'http://localhost/ports/af9d9274-4ea6-46c7-b718-c7ca3efa8303', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/ports {} -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.24 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:30.627628+00:00", "updated_at": "2024-01-06T15:33:30.669430+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "640cf16d-0e68-477f-8e54-28bdb3ddcd52"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-62297857-d7c5-490c-97b2-bba9ff464bed +Openstack-Request-Id: req-50863737-cad9-43a0-97a0-e32a7ae3baf4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/ports {} -GOT:Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:31.002213+00:00", "updated_at": "2024-01-06T15:33:31.049460+00:00", "address": "aa:bb:cc:dd:ee:ff", "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"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': False, 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-23283c04-7a81-4fa7-a3e6-0ef91cfe3530 +Openstack-Request-Id: req-9ebc8b55-79fb-4432-8f40-08a6dc4d622b X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/ports {} -GOT:{'ports': []} -GET: /v1/ports/detail {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:13.223985+00:00', 'updated_at': None, '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': None, 'pxe_enabled': 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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None}]} -GET: /v1/ports {} -GOT:{'ports': [{'uuid': '21236670-0b70-484e-a9ca-da527eeaf2d3', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/21236670-0b70-484e-a9ca-da527eeaf2d3', 'rel': 'self'}, {'href': 'http://localhost/ports/21236670-0b70-484e-a9ca-da527eeaf2d3', 'rel': 'bookmark'}]}, {'uuid': 'd72b0241-0e2b-4e46-a3da-6db28b479a87', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/d72b0241-0e2b-4e46-a3da-6db28b479a87', 'rel': 'self'}, {'href': 'http://localhost/ports/d72b0241-0e2b-4e46-a3da-6db28b479a87', 'rel': 'bookmark'}]}, {'uuid': 'd37fd448-fcd3-46b9-9210-f0e0e2494875', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/d37fd448-fcd3-46b9-9210-f0e0e2494875', 'rel': 'self'}, {'href': 'http://localhost/ports/d37fd448-fcd3-46b9-9210-f0e0e2494875', 'rel': 'bookmark'}]}, {'uuid': '76efd986-96c3-4eb0-ae6e-637e7b71a3bb', 'address': '52:54:00:cf:2d:33', 'links': [{'href': 'http://localhost/v1/ports/76efd986-96c3-4eb0-ae6e-637e7b71a3bb', 'rel': 'self'}, {'href': 'http://localhost/ports/76efd986-96c3-4eb0-ae6e-637e7b71a3bb', 'rel': 'bookmark'}]}, {'uuid': 'dff3ca86-0ccd-4050-8514-c80b17bfa8ab', 'address': '52:54:00:cf:2d:34', 'links': [{'href': 'http://localhost/v1/ports/dff3ca86-0ccd-4050-8514-c80b17bfa8ab', 'rel': 'self'}, {'href': 'http://localhost/ports/dff3ca86-0ccd-4050-8514-c80b17bfa8ab', 'rel': 'bookmark'}]}]} -GET: /v1/ports {} -GOT:{'ports': [{'uuid': '5bb5c3e3-bca5-449a-9546-4db2dae79874', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/5bb5c3e3-bca5-449a-9546-4db2dae79874', 'rel': 'self'}, {'href': 'http://localhost/ports/5bb5c3e3-bca5-449a-9546-4db2dae79874', 'rel': 'bookmark'}]}, {'uuid': 'b2f07e50-d4b2-4c50-bd50-6f0bdd21cb90', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/b2f07e50-d4b2-4c50-bd50-6f0bdd21cb90', 'rel': 'self'}, {'href': 'http://localhost/ports/b2f07e50-d4b2-4c50-bd50-6f0bdd21cb90', 'rel': 'bookmark'}]}]} -GET: /v1/ports {} -GOT:{'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?address=aa:bb:cc:dd:ee:f1 {} -GOT:{'ports': [{'uuid': '7ee07c92-2e1b-4dd5-a578-7c9ec058fc7f', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/7ee07c92-2e1b-4dd5-a578-7c9ec058fc7f', 'rel': 'self'}, {'href': 'http://localhost/ports/7ee07c92-2e1b-4dd5-a578-7c9ec058fc7f', 'rel': 'bookmark'}]}]} -GET: /v1/ports?address=invalid-mac-format {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-580a2a2e-ca6d-49ba-b694-4a57c1795584 +Openstack-Request-Id: req-6e7c444c-2152-4e98-ac7d-822f37e6ffbb X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/ports?address=aa:bb:cc:dd:ee:f1 {} -GOT:{'ports': [{'uuid': 'e7a48d42-bc69-440d-a729-fcde2aefb6d2', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/e7a48d42-bc69-440d-a729-fcde2aefb6d2', 'rel': 'self'}, {'href': 'http://localhost/ports/e7a48d42-bc69-440d-a729-fcde2aefb6d2', 'rel': 'bookmark'}]}]} -GET: /v1/ports?address=aa:bb:cc:dd:ee:f1 {} -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin_no_match -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin_no_match ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_alloc_policy_and_retrieve_no_alloc_policy_not_found -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_alloc_policy_and_retrieve_no_alloc_policy_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_no_allocation -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_no_allocation ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_policy_not_found -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_policy_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_node_policy_and_retrieve -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_node_policy_and_retrieve ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy_forbidden -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy_forbidden ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_auth_token_info -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_auth_token_info ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api ... ok -ironic.tests.unit.api.test_root.TestRoot.test_get_root -ironic.tests.unit.api.test_root.TestRoot.test_get_root ... ok -ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors -ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors ... ok -ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 -ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 ... ok -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root ... ok -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_fast_track -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_fast_track ... ok -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_last_step_noop_fast_track -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_last_step_noop_fast_track ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked ... ok -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_fast_track -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_fast_track ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver ... ok -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify ... ok -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat_agent_token -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat_agent_token ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout ... ok -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state ... ok -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations -ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:09.027633+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': 'project', 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': None, 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-f6c2319c-668a-49e1-8e44-304ae6647701 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -POST: /v1/nodes {'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', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} +PATCH: /v1/ports/52:54:00:cf:2d:31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5d4da1c5-b67a-4835-80d9-daa2259c3fd4 +Openstack-Request-Id: req-def1bef0-9310-45da-b3ba-b910046aef53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes {'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', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 406 Not Acceptable +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}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-042befb7-13cc-4617-b183-5da8904a1dbe +Openstack-Request-Id: req-9de5f9ac-c497-4e01-bbc8-17c6144badc5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version ... ok +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:33.336927+00:00", "updated_at": "2024-01-06T15:33:33.389340+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-885ab7b1-6269-4f9d-be23-46a9a65fc0f1 +Openstack-Request-Id: req-8c8ca4f7-362b-4305-aa2e-248484de9d59 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:12.219235+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:33.895845+00:00", "updated_at": "2024-01-06T15:33:33.974405+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-48e18fa3-642d-42dd-8cd9-e909a1ac7273 +Openstack-Request-Id: req-b50fbeea-7295-4686-a65c-b9c43826df95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/portgroups/pg.1 [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] -GOT:Response: 400 Bad Request +{"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}"} +PATCH: /v1/ports/a30c5175-544b-406e-8ba7-15db1fda71f6 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1e1a3fff-7802-492b-84ba-1cb074dd4ac8 +Openstack-Request-Id: req-be6aecf9-2692-42dd-a315-9d6df43c04e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup pg.1: Cannot change name to invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/62cf0f7b-0494-42ee-a48d-b946dc0be1f6 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port a30c5175-544b-406e-8ba7-15db1fda71f6 could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9f78ca90-1118-41d8-81bc-e23c83cb0cd0 +Openstack-Request-Id: req-939fbd47-fe5f-46e2-b915-285909373cbe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 62cf0f7b-0494-42ee-a48d-b946dc0be1f6 could not be found.\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:35.178309+00:00", "updated_at": "2024-01-06T15:33:35.223470+00:00", "address": "aa:bb:cc:dd:ee:ff", "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"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-016be374-b6b4-432f-b81e-646ec6fda0b9 +Openstack-Request-Id: req-1fc9d00c-9f3d-4cc6-bec6-99336f36ac03 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:13.262788+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/internal_info', 'value': False, 'op': 'replace'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.19 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:35.635389+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}] +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface ... ok +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_null_field +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_null_field ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version +ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field ... ok +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url ... ok +ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok +ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:35.302332+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:35.302332+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:35.987576+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_033_nodes_management_boot_device_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_033_nodes_management_boot_device_put_member ... ok +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-0485015c-f8e0-4e69-8bd0-58702efb205c +Openstack-Request-Id: req-6b552a32-5bac-44d7-8b0c-5f56d8e8ced0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/mode', 'value': '802.3ad', 'op': 'add'}, {'path': '/properties/bond_param', 'value': '100', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-b2eca579-37a6-4d65-9152-6e1b450b9e89 +Openstack-Request-Id: req-11593c4e-228f-453e-8ac3-f6508542004d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:13.706282+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/mode', 'op': 'add', 'value': '802.3ad'}] +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'management_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-c2d54b9c-0557-4bad-bb49-fbd7d4611c1b +Openstack-Request-Id: req-c8078990-ab36-45ff-a222-d99b3a05017a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.25 +X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/properties/abc', 'op': 'add', 'value': 123}] +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-8ea93440-a48d-49e2-b4c1-ef83ed9aa733 +Openstack-Request-Id: req-a1d9bd3e-48d6-4164-9464-e524d7c3546b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.25 +X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] -GOT:Response: 200 OK +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-2fc8468a-574b-469f-9139-66a9cddb31d2 +Openstack-Request-Id: req-59da57e8-385e-46bc-9b81-503ba88ab75f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:28:14.260219+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake ... ok -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fallback_defaults -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fallback_defaults ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_instance_info_override -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_instance_info_override ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_2 -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_2 ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_connerror -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_connerror ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_ioerror -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_ioerror ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_ioerror -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_ioerror ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_oserror -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_oserror ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_custom_timeout -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_custom_timeout ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_http_scheme -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_http_scheme ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_path -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_path ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true_connerror -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true_connerror ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_allowed -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_allowed ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_disabled -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_disabled ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_http_scheme -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_http_scheme ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_forbidden -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_forbidden ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_redirected -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_redirected ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_connect_error -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_connect_error ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_error -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_error ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false_error -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false_error ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_os_error -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_os_error ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true_error -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true_error ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_valid_path -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_valid_path ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop ... ok -ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier -ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state ... ok -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_getting_current -ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_getting_current ... ok -ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier -ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier ... ok -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-6195b637-26f6-403c-b95d-9c583f2fdce2 +Openstack-Request-Id: req-cfc7eb93-866f-4c4b-806f-6883b9a2281e X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'target': 'rescue', 'rescue_password': 'password'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-48015019-8afe-404c-b2aa-c93ee151ed4e +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-c6e33049-80b5-458a-b29b-29e329de2d43 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'target': 'rescue', 'rescue_password': 'password'} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('traits' was unexpected)\", \"debuginfo\": null}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-61aed04f-0f97-4bf7-b841-d3a901e9e554 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-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', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_present +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_present ... ok +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean ... ok +ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high +ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info ... ok GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-42777455-1915-459c-94e6-e0a4ea13917b +Openstack-Request-Id: req-0e3ef7d1-0499-4421-8d42-eb4d73226e8f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -15266,7 +13499,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-644d69c1-cdf8-40d8-9524-5f124a9185ef +Openstack-Request-Id: req-e132b4f8-8e75-4ec4-afb5-402a7e83f2b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -15274,7 +13507,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-f6ebfc84-cd79-40ab-9e13-d24691542db5 +Openstack-Request-Id: req-2534a305-de94-4889-96ab-e2b59bc15eb1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -15282,7 +13515,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-2db2b54b-6116-40b6-83f2-bd850f743cc1 +Openstack-Request-Id: req-3ec96cf3-01b7-4c41-a19c-c211205acd17 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -15290,7 +13523,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-5307b141-c930-4457-a5ef-1ec3b2c1354d +Openstack-Request-Id: req-c10fd99d-75ed-4360-997f-a30ab68bfb51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -15298,7 +13531,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-22e444aa-3c50-4a51-aa44-b8030dc695cb +Openstack-Request-Id: req-f505ec26-cee4-4b14-9435-401ce30e0a17 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -15306,7 +13539,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'rescue_password': 'password'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0e12bfd5-96c3-49bf-8868-7916047b737a +Openstack-Request-Id: req-9d19f808-7352-4129-8205-ab1c2e2d1ea4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -15314,7 +13547,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-a78a773b-87ab-4947-aaf8-01602955dc2f +Openstack-Request-Id: req-e64a6904-69be-429c-88cb-890986217810 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -15322,7 +13555,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-f9846c7f-0881-431e-ab4d-d9982659a64d +Openstack-Request-Id: req-b3762619-b68f-4518-aea4-79d771e0f79b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -15330,7 +13563,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-bb38f2e1-6303-4d37-981a-ed2f1cc5a7a0 +Openstack-Request-Id: req-dcbe6e28-346d-435f-8c58-5d0bb5954905 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -15338,7 +13571,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-563de216-7d01-486a-b2bf-4dd7d7940414 +Openstack-Request-Id: req-d9835499-d668-4ec5-8032-c448f9411aae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -15346,7 +13579,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-a46b59b7-3960-4666-90a9-6d5ec4061b4f +Openstack-Request-Id: req-77f9a5b1-824b-429f-8195-8ba458b68b0c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -15354,7 +13587,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-09a2197e-0922-40bf-830b-dc8d4c0be535 +Openstack-Request-Id: req-f1c95079-af8f-423b-9658-8af1d51b6f82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -15362,776 +13595,1203 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-20fe19e5-f7a1-4566-bfd4-356673f7a202 +Openstack-Request-Id: req-3d878e91-8157-4b4e-9be8-f5de2a7d17aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'target': 'unrescue'} -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_expected_exception -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_expected_exception ... ok +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Request-Id: req-752d2e7c-181b-4299-bfd7-09ccc48a7b62 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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 {'target': 'provide', 'clean_steps': 'foo'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-966b1edb-4f08-4dc8-aa9f-cd6a3e991218 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default ... ok +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low +ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data ... ok +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_alloc_policy_and_retrieve_no_alloc_policy_not_found +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_alloc_policy_and_retrieve_no_alloc_policy_not_found ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid ... ok +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-607bb781-4a59-4bf4-a4c9-9a52bb0eaf56 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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 {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-05777f9c-d048-4cfd-863d-2dbaffac2907 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"} +POST: /v1/volume/connectors {'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-73b1ff42-d466-48ea-9ae3-342215e58783 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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'} +POST: /v1/volume/connectors {'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-c7c4928f-0c31-4284-b2d8-219aee3b5e54 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:34.659016+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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:33:34.659016+00:00', 'updated_at': None, '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'} +POST: /v1/volume/connectors {'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-a0837597-1ad0-4e40-8738-b525efd32370 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +POST: /v1/volume/connectors {'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/4fe6995d-6a43-4daf-927f-ce5019483471 +Openstack-Request-Id: req-bc2db1fc-ed7d-4d67-b614-73b704058227 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "4fe6995d-6a43-4daf-927f-ce5019483471", "created_at": "2024-01-06T15:33:35.816781+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/4fe6995d-6a43-4daf-927f-ce5019483471", "rel": "self"}, {"href": "http://localhost/volume/connectors/4fe6995d-6a43-4daf-927f-ce5019483471", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +GET: /v1/volume/connectors/4fe6995d-6a43-4daf-927f-ce5019483471 {} +GOT:{'uuid': '4fe6995d-6a43-4daf-927f-ce5019483471', 'created_at': '2024-01-06T15:33:35.816781+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/4fe6995d-6a43-4daf-927f-ce5019483471', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4fe6995d-6a43-4daf-927f-ce5019483471', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +POST: /v1/volume/connectors {'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\": \"\"}"} +POST: /v1/volume/connectors {'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-b3f2fccc-4e59-467f-aa38-2057f21cf939 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 123 is not of type 'string'\", \"debuginfo\": null}"} +POST: /v1/volume/connectors {'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-65766a36-ab23-4d80-a772-3e9f03f77d19 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'connector_id' is a required property\", \"debuginfo\": null}"} +POST: /v1/volume/connectors {'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-b303fa71-0548-424e-914f-686f315a9415 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'node_uuid' is a required property\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_034_nodes_management_boot_device_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_034_nodes_management_boot_device_put_observer ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_deploy_iso +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_deploy_iso ... ok +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 +ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_no_allocation +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_no_allocation ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:36.485777+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': 'some-lucky-project', 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/03ad449e-d978-4ddc-8284-dbbe5818d17f {} +GOT:{'uuid': '03ad449e-d978-4ddc-8284-dbbe5818d17f', 'created_at': '2024-01-06T15:33:36.933746+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, '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.1ad', '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': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'active', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/03ad449e-d978-4ddc-8284-dbbe5818d17f', 'rel': 'self'}, {'href': 'http://localhost/nodes/03ad449e-d978-4ddc-8284-dbbe5818d17f', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/03ad449e-d978-4ddc-8284-dbbe5818d17f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/03ad449e-d978-4ddc-8284-dbbe5818d17f/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/03ad449e-d978-4ddc-8284-dbbe5818d17f/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/03ad449e-d978-4ddc-8284-dbbe5818d17f/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/03ad449e-d978-4ddc-8284-dbbe5818d17f/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/03ad449e-d978-4ddc-8284-dbbe5818d17f/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/03ad449e-d978-4ddc-8284-dbbe5818d17f/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/03ad449e-d978-4ddc-8284-dbbe5818d17f/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type ... ok +:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_esp_image +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_esp_image ... ok +POST: /v1/chassis {'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-f8b4d57e-7199-4475-84b0-5f866696b8f7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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'}]]} +POST: /v1/chassis {'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-aadfeb67-f4fa-4ff3-94f3-cb5ddb470442 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:33:35.909597+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 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2024-01-06T15:33:35.909597+00:00', 'updated_at': None, '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'}]]} +POST: /v1/chassis {'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-8280d550-8f23-4df4-951c-aae036019f3d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +POST: /v1/chassis {'extra': {}, 'description': 'data-center-1-chassis'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/chassis/30d94b82-bf85-4f3c-a42f-e15694c453aa +Openstack-Request-Id: req-5782b696-c51a-4952-9d6b-4b8ad148929c +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "30d94b82-bf85-4f3c-a42f-e15694c453aa", "created_at": "2024-01-06T15:33:36.767309+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/30d94b82-bf85-4f3c-a42f-e15694c453aa", "rel": "self"}, {"href": "http://localhost/chassis/30d94b82-bf85-4f3c-a42f-e15694c453aa", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/30d94b82-bf85-4f3c-a42f-e15694c453aa/nodes", "rel": "self"}, {"href": "http://localhost/chassis/30d94b82-bf85-4f3c-a42f-e15694c453aa/nodes", "rel": "bookmark"}]]} +GET: /v1/chassis {} +GOT:{'chassis': [{'uuid': '30d94b82-bf85-4f3c-a42f-e15694c453aa', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/30d94b82-bf85-4f3c-a42f-e15694c453aa', 'rel': 'self'}, {'href': 'http://localhost/chassis/30d94b82-bf85-4f3c-a42f-e15694c453aa', 'rel': 'bookmark'}]}]} +POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 1334} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-b72e55ab-6153-4a40-ab00-ebeab0b27f15 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-19208f69-fe28-47fb-8348-a75ef74e8898 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/chassis {'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-e976d628-e996-4609-b989-e48f8987fa89 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:33:37.875782+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 {} +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data_hidden_in_lower_version ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_policy_not_found +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_policy_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_mkisofs_fails +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_mkisofs_fails ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root ... ok +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-d671b097-7033-4ffa-8f43-d59db099be03 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-88e643d4-5d00-4a72-83f9-3878a7d0a329 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-628c1c06-ecfa-4c01-8422-6a64b8997bff +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-e60ef992-a1d6-4444-90df-4c8ffbf44023 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-05f154c0-b7cf-4c76-b1a6-a360c19de257 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-cc8f6cca-9ea5-4b1b-b57b-cfa70ded62fc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-fa1e5cea-7d69-4215-8bb9-993ce6d48e4f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-a31193c1-d8a0-4c74-80b4-a0dddf68abe5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-0bf1013f-1f1f-424a-b16c-1c2f5f542b53 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-a5b277c4-2552-47f0-a835-fe8c9e0820d2 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-9647b70c-865b-4205-8cf8-daba9c2e1f9a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-ed49f19a-d03b-4534-b758-037ba6f012a2 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-db102485-1075-4d72-9a85-e06e4136d595 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-b4f3e18f-8f87-41d9-9f3b-0cc0114f5414 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_node_policy_and_retrieve +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_node_policy_and_retrieve ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_invalid_type -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_invalid_type ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_not_base64 -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_not_base64 ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_url -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_url ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps_fail -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive ... ok -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param ... ok -ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id -ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_in_background_task -ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_in_background_task ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_retired_last_step_change_tgt_state -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_retired_last_step_change_tgt_state ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch_with_rpc_disabled -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch_with_rpc_disabled ... ok -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_no_conductor_with_rpc_disabled -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_no_conductor_with_rpc_disabled ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state ... ok -GOT:{'nodes': [{'uuid': '6322f1ef-50a7-4e3f-9c30-db99e00a51f6', 'created_at': '2025-02-07T21:28:13.813580+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': 'clean failure', 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/6322f1ef-50a7-4e3f-9c30-db99e00a51f6', 'rel': 'self'}, {'href': 'http://localhost/nodes/6322f1ef-50a7-4e3f-9c30-db99e00a51f6', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/6322f1ef-50a7-4e3f-9c30-db99e00a51f6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6322f1ef-50a7-4e3f-9c30-db99e00a51f6/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/6322f1ef-50a7-4e3f-9c30-db99e00a51f6/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/6322f1ef-50a7-4e3f-9c30-db99e00a51f6/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/6322f1ef-50a7-4e3f-9c30-db99e00a51f6/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/6322f1ef-50a7-4e3f-9c30-db99e00a51f6/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/6322f1ef-50a7-4e3f-9c30-db99e00a51f6/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/6322f1ef-50a7-4e3f-9c30-db99e00a51f6/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?fault=power failure {} -GOT:Response: 406 Not Acceptable +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_035_nodes_management_boot_device_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_035_nodes_management_boot_device_get_admin ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid ... ok +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:37.543438+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:37.543438+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:38.150108+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_uefi_rootfs_fails +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_uefi_rootfs_fails ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-99bf6dad-b2df-4948-aa20-e4a810f69f25 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-a3b61fd6-aedc-4cc0-9bd7-0af7ebee6bfd X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:36.568089+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", "cpus": "8", "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:36.568089+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -Openstack-Request-Id: req-239801c3-2266-476a-8ad1-a29dc4beb425 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-78579453-2f03-47ab-897e-2b940242263b X-Openstack-Ironic-Api-Maximum-Version: 1.80 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?fault=somefake {} +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:37.448161+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", "cpus": "8", "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:37.448161+00:00', 'updated_at': None, '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': None, 'dict': {'cat': 'meow'}}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_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'} +:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent ... ok GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-66976e55-693f-4b5a-8944-31e8d3b5f2cb +Openstack-Request-Id: req-2ede995a-81c6-475c-8312-8275c530500f X-Openstack-Ironic-Api-Maximum-Version: 1.80 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')\", \"debuginfo\": null}"} -GET: /v1/nodes/detail?fault=somefake {} +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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-a97b36f4-cc5f-46ec-a372-b90995fe5bb6 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:35.271415+00:00", "updated_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", "cpus": "8", "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"}]} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/console_enabled', 'op': 'replace', 'value': True}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-589cadc1-3ba5-4432-9ca6-c04a55699961 +Openstack-Request-Id: req-fe0bc63f-2920-4d3d-9cee-6f35d23597ab X-Openstack-Ironic-Api-Maximum-Version: 1.80 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')\", \"debuginfo\": null}"} -GET: /v1/nodes?driver=test {} -GOT:{'nodes': []} -GET: /v1/nodes?provision_state=test {} +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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/power_state', 'op': 'replace', 'value': 'fake-state'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ef5c7723-2533-4362-afe3-4ca4af1b9fe4 +Openstack-Request-Id: req-ac712e1b-3b81-4895-98a3-39ec19caadd4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes?resource_class=test {} -GOT:{'nodes': []} -GET: /v1/nodes/detail?resource_class=test {} -GOT:{'nodes': []} -GET: /v1/nodes?lessee=project1 {} -GOT:{'nodes': [{'uuid': 'f7c9821e-fc7d-4f1b-8207-efeb6b7b8f9d', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/f7c9821e-fc7d-4f1b-8207-efeb6b7b8f9d', 'rel': 'self'}, {'href': 'http://localhost/nodes/f7c9821e-fc7d-4f1b-8207-efeb6b7b8f9d', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?lessee=project2 {} -GOT:{'nodes': [{'uuid': 'c94fcb12-d8ed-4904-b7d9-a8e3bb382bdb', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/c94fcb12-d8ed-4904-b7d9-a8e3bb382bdb', 'rel': 'self'}, {'href': 'http://localhost/nodes/c94fcb12-d8ed-4904-b7d9-a8e3bb382bdb', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?lessee=project1 {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee_not_allowed ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_existing -ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_existing ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup ... ok -ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier -ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_with_rpc_disabled -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_with_rpc_disabled ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_do_node_deploy_steps -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_do_node_deploy_steps ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync ... ok -ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier -ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_node_already_locked -ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_node_already_locked ... ok -ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id -ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail ... ok -GOT:Response: 204 No Content -Openstack-Request-Id: req-a84272ef-b68e-4639-a27b-46785d558ac0 +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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/maintenance', 'op': 'replace', 'value': True}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-f643085d-bf06-491f-8caa-f5a44ef8e867 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -POST: /v1/events {'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'}]} +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:36.670086+00:00", "updated_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", "cpus": "8", "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"}]} +PATCH: /v1/nodes/node-57.1 [{'path': '/maintenance', 'op': 'replace', 'value': True}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-90cbf4b6-6d34-48bc-84bc-b33528feb5b5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.5 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:37.367365+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", "cpus": "8", "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"}]} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e3451f86-2c61-4799-b2b2-747d8cc13f8a +Openstack-Request-Id: req-67df7981-6e31-4f6d-aa10-4c6752f8e23e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/provision_updated_at', 'op': 'replace', 'value': '2000-01-01 00:00:00'}] +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden_no_project +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden_no_project ... ok +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-df71a5d9-50d8-4329-bc93-542468f6c511 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'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-4f6bd3dd-64bf-41bb-ae22-5ed8177c584e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -POST: /v1/events {'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']}]} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:36.332284+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f9f39324-d28a-4800-ab05-3da69ecb6b4a +Openstack-Request-Id: req-07d04e97-98ba-4ee5-b232-ea0f46b6442d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'] is not of type 'string', 'null'\", \"debuginfo\": null}"} -POST: /v1/events {'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 +{"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}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6f7c54ce-2653-4927-b6e4-ecf18578a22c +Openstack-Request-Id: req-3dd03c84-40b8-470a-98ae-a8702dd84c9d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for device_id: DEVICE_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} -POST: /v1/events {'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 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:37.042341+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-34a2d121-173d-4fff-918a-f733b1940dab +Openstack-Request-Id: req-dd52e216-aa1e-4014-85f0-ffea8555149e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for mac_address: INVALID_MAC_ADDRESS\", \"debuginfo\": null}"} -POST: /v1/events {'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'}]} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:37.485323+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0199fa4a-a0a4-4253-b829-dd57f8d0b9aa +Openstack-Request-Id: req-8b4ea36a-28a4-400d-b0c6-83f80effdd4e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} -POST: /v1/events {'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'}]} +{"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}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-f662d662-9d48-4ed1-bbf9-0e2230f3bbe7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:38.242971+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/mode', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a36c7423-cc09-4d6c-8e36-b729fcdba018 +Openstack-Request-Id: req-2189fefe-4d39-4f29-bb58-a022df335e2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"} -POST: /v1/events {'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-cff97376-06c0-4dca-a2ad-a8182dda988d +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'mode' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo1', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-64ec8baf-5a1e-418f-8412-d65aeda8db00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 - -POST: /v1/events {'events': [{'event': 'network.unbind_port', 'UNKNOWN': 'EVENT_PROPERTY'}]} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:39.051801+00:00", "updated_at": "2024-01-06T15:33:39.056748+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/extra', 'op': 'remove'}] +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_036_nodes_management_boot_device_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_036_nodes_management_boot_device_get_member ... ok +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping ... ok +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin ... ok +:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi ... ok GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-455dbafc-c3b5-473b-bf72-3836bab202c8 +Openstack-Request-Id: req-cd118882-bcaa-4c0f-9330-97c60713661c +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5 [{'path': '/boot_interface', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-4191eb2d-6a51-46c6-bd34-1e99adb1b240 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 403 Forbidden +{"uuid": "689aa9d1-e323-4723-b973-03c28a45b6d5", "created_at": "2024-01-06T15:33:39.052730+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5 [{'path': '/console_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0a99da11-c652-43c0-80a9-b33943fbbf7f +Openstack-Request-Id: req-d8b3a90c-4c04-4fdd-a9ba-937edf54b2e3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 403 Forbidden +{"uuid": "689aa9d1-e323-4723-b973-03c28a45b6d5", "created_at": "2024-01-06T15:33:39.052730+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5 [{'path': '/deploy_interface', 'op': 'remove'}] +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_invalid_type +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_invalid_type ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin_owner_proj_mismatch +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin_owner_proj_mismatch ... ok +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_no_vif +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_no_vif ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d13001b3-30c7-4992-9e83-a50d09006626 +Openstack-Request-Id: req-e3da88d9-5f53-4550-aa2a-3338afda1707 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 403 Forbidden +{"uuid": "689aa9d1-e323-4723-b973-03c28a45b6d5", "created_at": "2024-01-06T15:33:39.052730+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5 [{'path': '/inspect_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5074b114-df40-4edc-87cf-7458d3d12b93 +Openstack-Request-Id: req-f15e441a-5c6e-4b7c-939e-429b989d228d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +{"uuid": "689aa9d1-e323-4723-b973-03c28a45b6d5", "created_at": "2024-01-06T15:33:39.052730+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5 [{'path': '/management_interface', 'op': 'remove'}] +INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_with_owner +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_with_owner ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_not_base64 +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_not_base64 ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail ... ok +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default_limit +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default_limit ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-0ac18226-2abf-4c6e-aa52-201f3aa1c42d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "689aa9d1-e323-4723-b973-03c28a45b6d5", "created_at": "2024-01-06T15:33:39.052730+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5 [{'path': '/power_interface', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-2412d8fc-74c9-4939-b30f-e022b7f1b9ce +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "689aa9d1-e323-4723-b973-03c28a45b6d5", "created_at": "2024-01-06T15:33:39.052730+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5 [{'path': '/raid_interface', 'op': 'remove'}] +DELETE: /v1/nodes/doesntexist/vifs/3f093df0-2494-4a35-8c5e-701d3baa07cd GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-64ba72d4-5d04-44e5-a880-f9aa0c7cf2fc +Openstack-Request-Id: req-34446697-9efb-4a63-9c80-043b6f59241d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} +GOT:{'vifs': []} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'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-40ffff3f-0c16-4d91-b192-4f2ed2e4d3a4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_006_nodes_get_node_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_006_nodes_get_node_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_007_nodes_get_node_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_007_nodes_get_node_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_008_nodes_get_node_other_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_008_nodes_get_node_other_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_009_nodes_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_009_nodes_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_010_nodes_get_other_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_010_nodes_get_other_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_011_nodes_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_011_nodes_detail_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_012_nodes_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_012_nodes_detail_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_013_nodes_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_013_nodes_detail_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_014_nodes_node_ident_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_014_nodes_node_ident_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_015_nodes_node_ident_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_015_nodes_node_ident_get_member ... ok -ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled -ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_016_nodes_node_ident_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_016_nodes_node_ident_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_017_nodes_node_ident_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_017_nodes_node_ident_patch_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_018_nodes_node_ident_patch_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_018_nodes_node_ident_patch_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_019_nodes_node_ident_patch_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_019_nodes_node_ident_patch_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_020_nodes_node_ident_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_020_nodes_node_ident_delete_admin ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version ... ok -ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled -ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_valid -ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_valid ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions ... ok -ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics -ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_records_lessee -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_records_lessee ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_validate_fail -ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_validate_fail ... ok -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_pregenerated_token -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_pregenerated_token ... ok -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_worker_pool_full -ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_worker_pool_full ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path ... ok +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:36.538035+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"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-65e1e543-c288-4fbf-957b-eb3a0d0cdb73 +Openstack-Request-Id: req-535d07e6-323d-4775-89da-e73089947400 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 [{'path': '/name', 'op': 'add', 'value': 'states'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d5aaf817-9295-443f-a813-42d47bc10b8b +Openstack-Request-Id: req-3d782745-ef0e-43de-8ccb-a1747a8b78a6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 [{'path': '/name', 'op': 'add', 'value': 'vendor_passthru'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:37.334254+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"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-149230b5-64fd-42ff-b1c3-3138c8934a4f +Openstack-Request-Id: req-8b4cead1-e519-4b34-9503-0e4c19e17472 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 [{'path': '/name', 'op': 'add', 'value': 'detail'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-07368562-8f99-4fd4-b1da-df8bc753a5c8 +Openstack-Request-Id: req-5b5dbb68-e799-4be2-9093-c5276d1dd30a X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 [{'path': '/name', 'op': 'add', 'value': 'validate'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:38.045607+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"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-2c4d1fbc-b497-48b2-a27f-c2cec1d3d4c9 +Openstack-Request-Id: req-616ed4b1-7d2e-454d-90b1-64319b3e5bb8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/value', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-870d163c-1fd3-4619-8731-cb4230f23a3a +Openstack-Request-Id: req-985f39ed-3104-477d-9877-edf4fb3ddb64 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/7f1417f6-2f33-4e8c-8979-715f5d1f96e0 [{'path': '/allocation_uuid', 'op': 'replace', 'value': '4efc2fa8-0e09-4f21-8dd5-1c56bdc54739'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /value. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ab1cc8db-5da5-4253-a390-a08e436fba37 +Openstack-Request-Id: req-cd26e577-63e6-477f-8988-28e8e625f114 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/6b001f55-cc05-4cb5-b076-6e7477b82939 [{'path': '/allocation_uuid', 'op': 'replace', 'value': '8c0179d6-e7d6-4628-aeac-533a84172318'}] -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:39.223472+00:00", "updated_at": "2024-01-06T15:33:39.229215+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 [{'path': '/extra', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-62b25515-3493-4317-ac80-fe41f4ecc029 +Openstack-Request-Id: req-28b6e665-0ccc-4847-8922-fc0cd78cf6ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/835b5844-fab7-43b0-ac11-ae61c51b153b [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:39.223472+00:00", "updated_at": "2024-01-06T15:33:39.229215+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"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e9722664-e2ef-400e-81b5-27eeaf424d7f +Openstack-Request-Id: req-152e150b-fdb0-44c7-beb4-a62a32f8ae81 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/840b39da-eefa-4e83-8f9c-68756a1e1bb7 [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_037_nodes_management_boot_device_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_037_nodes_management_boot_device_get_observer ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:38.150108+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:38.801724+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:39.344793+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': 'akindofmagic', 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/07459658-0a2d-49ba-9911-3c1481fb07dc {} +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_inject_files +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_inject_files ... ok +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_vif_present +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_vif_present ... ok +:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_001_values +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_001_values ... skipped 'These are fake reference values for YAML templating' +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_url +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_url ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-82eb0860-9c88-4d11-bb58-8d73604fc5e4 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-f6fa0793-1fce-4836-b715-8901e4ecc651 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/49bdb9ed-4be8-4fa8-a1ed-cc8a76d59b05 [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:38.390761+00:00", "updated_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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:38.390761+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -Openstack-Request-Id: req-f99ec324-358c-4f3f-baf9-6c409e7f3be7 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-347e03f4-8cbe-47b6-9fb9-517f7cf52cea X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/4d21ecf7-09d0-4319-a581-39baf8e2c0ef [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled ... ok -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock ... ok -GOT:{'ports': [{'uuid': '98f0b68e-caea-4544-99dd-67ae94e456b2', 'created_at': '2025-02-07T21:28:13.141088+00:00', 'updated_at': None, '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': None, 'pxe_enabled': True, 'links': [{'href': 'http://localhost/v1/ports/98f0b68e-caea-4544-99dd-67ae94e456b2', 'rel': 'self'}, {'href': 'http://localhost/ports/98f0b68e-caea-4544-99dd-67ae94e456b2', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': 'a6dea9ac-9a7d-497a-a9ee-fff514d257fc'}, {'uuid': '4e508142-8f4d-4ccd-8f82-2308427c2afc', 'created_at': '2025-02-07T21:28:13.142961+00:00', 'updated_at': None, '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': None, 'pxe_enabled': True, 'links': [{'href': 'http://localhost/v1/ports/4e508142-8f4d-4ccd-8f82-2308427c2afc', 'rel': 'self'}, {'href': 'http://localhost/ports/4e508142-8f4d-4ccd-8f82-2308427c2afc', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': 'a6dea9ac-9a7d-497a-a9ee-fff514d257fc'}]} -GET: /v1/portgroups/a6dea9ac-9a7d-497a-a9ee-fff514d257fc/ports?limit=1 {} -GOT:{'ports': [{'uuid': '98f0b68e-caea-4544-99dd-67ae94e456b2', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/98f0b68e-caea-4544-99dd-67ae94e456b2', 'rel': 'self'}, {'href': 'http://localhost/ports/98f0b68e-caea-4544-99dd-67ae94e456b2', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=98f0b68e-caea-4544-99dd-67ae94e456b2'} -GET: /v1/portgroups/a6dea9ac-9a7d-497a-a9ee-fff514d257fc/ports/82678392-732e-4aee-8caf-76ce96abb0ae {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:39.286924+00:00", "updated_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", "cpus": "8", "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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:39.286924+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/portgroups/a6dea9ac-9a7d-497a-a9ee-fff514d257fc/ports/57026677-82d6-4552-81b3-5e19159853bc {} +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-0d49e97a-35a8-4e5f-9140-8ab44b3b749d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:40.292587+00:00", "updated_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", "cpus": "8", "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 {} +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid ... ok +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_port_unbound +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_port_unbound ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps ... ok +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting ... ok +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2024-01-06T15:33:37.875782+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, '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'}]]} +POST: /v1/chassis/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-d18c3b56-d208-4909-8c03-8c90969cf531 +Openstack-Request-Id: req-4903cea5-8dad-4da6-82e5-ce44046ee5b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 +X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -GET: /v1/portgroups/3d889b1d-95cd-4aa3-ae89-8c230b7476a2/ports {} -GOT:Response: 404 Not Found +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '971a398c-8b76-42c4-9eb4-e5670c1cdcd9', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 201 Created Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} -GOT:Response: 404 Not Found +Location: http://localhost/v1/deploy_templates/971a398c-8b76-42c4-9eb4-e5670c1cdcd9 +Openstack-Request-Id: req-277394e7-f7d4-4da7-ac74-be07d04f184e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "971a398c-8b76-42c4-9eb4-e5670c1cdcd9", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/971a398c-8b76-42c4-9eb4-e5670c1cdcd9", "rel": "self"}, {"href": "http://localhost/deploy_templates/971a398c-8b76-42c4-9eb4-e5670c1cdcd9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +GET: /v1/deploy_templates/971a398c-8b76-42c4-9eb4-e5670c1cdcd9 {} +GOT:{'uuid': '971a398c-8b76-42c4-9eb4-e5670c1cdcd9', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/971a398c-8b76-42c4-9eb4-e5670c1cdcd9', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/971a398c-8b76-42c4-9eb4-e5670c1cdcd9', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '95cd5f37-f9f3-45a1-b10b-81c911a13186', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': [{'bar': 'baz'}]}, 'priority': 10}], 'extra': {}} +GOT:Response: 201 Created Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} -GOT:Response: 404 Not Found +Location: http://localhost/v1/deploy_templates/95cd5f37-f9f3-45a1-b10b-81c911a13186 +Openstack-Request-Id: req-d351f43d-28b9-44a1-b11e-7ccf99314148 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "95cd5f37-f9f3-45a1-b10b-81c911a13186", "created_at": "2024-01-06T15:33:39.100815+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/95cd5f37-f9f3-45a1-b10b-81c911a13186", "rel": "self"}, {"href": "http://localhost/deploy_templates/95cd5f37-f9f3-45a1-b10b-81c911a13186", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}]} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'f01acb4b-77b1-46b5-ae11-5bd8c20eb91e', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-e58d237f-7752-4199-b864-5a6b048caa5e +Location: http://localhost/v1/deploy_templates/f01acb4b-77b1-46b5-ae11-5bd8c20eb91e +Openstack-Request-Id: req-7f4af6ab-1f8e-44fa-8717-12f18abd8253 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} -GET: /v1/portgroups?sort_key=uuid {} -GOT:{'portgroups': [{'uuid': 'a0a33907-cac9-4d41-9773-22db6511d78d', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/a0a33907-cac9-4d41-9773-22db6511d78d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/a0a33907-cac9-4d41-9773-22db6511d78d', 'rel': 'bookmark'}]}, {'uuid': 'eecb53f4-14b3-469a-9908-1c78fb37c871', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/eecb53f4-14b3-469a-9908-1c78fb37c871', 'rel': 'self'}, {'href': 'http://localhost/portgroups/eecb53f4-14b3-469a-9908-1c78fb37c871', 'rel': 'bookmark'}]}, {'uuid': 'fa7f7a7f-4dc2-42aa-be32-daa94f4bda63', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/fa7f7a7f-4dc2-42aa-be32-daa94f4bda63', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fa7f7a7f-4dc2-42aa-be32-daa94f4bda63', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups?sort_key=mode {} -GOT:{'portgroups': [{'uuid': 'b7d78bbe-655b-49d4-a499-0e4327fe626a', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/b7d78bbe-655b-49d4-a499-0e4327fe626a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b7d78bbe-655b-49d4-a499-0e4327fe626a', 'rel': 'bookmark'}]}, {'uuid': '402ba66a-189d-44b9-9dcd-7b83ee5c4d98', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/402ba66a-189d-44b9-9dcd-7b83ee5c4d98', 'rel': 'self'}, {'href': 'http://localhost/portgroups/402ba66a-189d-44b9-9dcd-7b83ee5c4d98', 'rel': 'bookmark'}]}, {'uuid': '1587b206-3869-4dc4-af31-defeb919e5f0', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/1587b206-3869-4dc4-af31-defeb919e5f0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1587b206-3869-4dc4-af31-defeb919e5f0', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups?sort_key=foo {} -GOT:Response: 400 Bad Request +{"uuid": "f01acb4b-77b1-46b5-ae11-5bd8c20eb91e", "created_at": "2024-01-06T15:33:39.472198+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f01acb4b-77b1-46b5-ae11-5bd8c20eb91e", "rel": "self"}, {"href": "http://localhost/deploy_templates/f01acb4b-77b1-46b5-ae11-5bd8c20eb91e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +GET: /v1/deploy_templates/f01acb4b-77b1-46b5-ae11-5bd8c20eb91e {} +GOT:{'uuid': 'f01acb4b-77b1-46b5-ae11-5bd8c20eb91e', 'created_at': '2024-01-06T15:33:39.472198+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/f01acb4b-77b1-46b5-ae11-5bd8c20eb91e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/f01acb4b-77b1-46b5-ae11-5bd8c20eb91e', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '9aba20dd-eea3-4e90-a538-7f2e15bb3b8d', '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-a62198a7-ea6f-4672-8d54-b74c0b350e4f +Openstack-Request-Id: req-d9f0be04-4c53-4f42-b4eb-14f26e5c0786 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} -GET: /v1/portgroups?sort_key=extra {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-1a08cc2a-eeba-4325-be47-0f4c0311344c +Location: http://localhost/v1/deploy_templates/f03a8de9-e833-47d9-9e4e-9c99ff558f72 +Openstack-Request-Id: req-ff82dbb2-17b2-4b50-ab89-87c166ce7c05 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} -GOT:Response: 400 Bad Request +{"uuid": "f03a8de9-e833-47d9-9e4e-9c99ff558f72", "created_at": "2024-01-06T15:33:40.463836+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f03a8de9-e833-47d9-9e4e-9c99ff558f72", "rel": "self"}, {"href": "http://localhost/deploy_templates/f03a8de9-e833-47d9-9e4e-9c99ff558f72", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +GET: /v1/deploy_templates/f03a8de9-e833-47d9-9e4e-9c99ff558f72 {} +GOT:{'uuid': 'f03a8de9-e833-47d9-9e4e-9c99ff558f72', 'created_at': '2024-01-06T15:33:40.463836+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/f03a8de9-e833-47d9-9e4e-9c99ff558f72', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/f03a8de9-e833-47d9-9e4e-9c99ff558f72', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'e75bd694-daab-4125-b5a5-38a5e27a7b6c', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:{'uuid': '07459658-0a2d-49ba-9911-3c1481fb07dc', 'created_at': '2024-01-06T15:33:39.984432+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': True, 'protected_reason': None, 'provision_state': 'active', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/07459658-0a2d-49ba-9911-3c1481fb07dc', 'rel': 'self'}, {'href': 'http://localhost/nodes/07459658-0a2d-49ba-9911-3c1481fb07dc', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/07459658-0a2d-49ba-9911-3c1481fb07dc/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/07459658-0a2d-49ba-9911-3c1481fb07dc/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/07459658-0a2d-49ba-9911-3c1481fb07dc/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/07459658-0a2d-49ba-9911-3c1481fb07dc/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/07459658-0a2d-49ba-9911-3c1481fb07dc/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/07459658-0a2d-49ba-9911-3c1481fb07dc/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/07459658-0a2d-49ba-9911-3c1481fb07dc/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/07459658-0a2d-49ba-9911-3c1481fb07dc/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/19b5f055-9ef1-49de-80b8-4ecc15063ae9 {} +GOT:{'uuid': '19b5f055-9ef1-49de-80b8-4ecc15063ae9', 'created_at': '2024-01-06T15:33:40.200465+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'active', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/19b5f055-9ef1-49de-80b8-4ecc15063ae9', 'rel': 'self'}, {'href': 'http://localhost/nodes/19b5f055-9ef1-49de-80b8-4ecc15063ae9', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/19b5f055-9ef1-49de-80b8-4ecc15063ae9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/19b5f055-9ef1-49de-80b8-4ecc15063ae9/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/19b5f055-9ef1-49de-80b8-4ecc15063ae9/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/19b5f055-9ef1-49de-80b8-4ecc15063ae9/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/19b5f055-9ef1-49de-80b8-4ecc15063ae9/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/19b5f055-9ef1-49de-80b8-4ecc15063ae9/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/19b5f055-9ef1-49de-80b8-4ecc15063ae9/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/19b5f055-9ef1-49de-80b8-4ecc15063ae9/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:40.595277+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version ... ok +:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps_fail +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps_fail ... ok +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_002_nodes_post_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_002_nodes_post_admin ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo ... ok +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a8d3660f-b4ba-4cc4-b2f6-ef86b4b5418d +Openstack-Request-Id: req-d6607831-6930-4736-b780-e78350c1eaed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} -GOT:Response: 400 Bad Request +{"uuid": "689aa9d1-e323-4723-b973-03c28a45b6d5", "created_at": "2024-01-06T15:33:39.052730+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5 [{'path': '/vendor_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e8c5c4f3-6066-4602-9802-b1829fd5efb5 +Openstack-Request-Id: req-bb9aff12-556f-4841-a2e3-fd648e245f8e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} -GET: /v1/portgroups?sort_key=mode {} +{"uuid": "689aa9d1-e323-4723-b973-03c28a45b6d5", "created_at": "2024-01-06T15:33:39.052730+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "self"}, {"href": "http://localhost/nodes/689aa9d1-e323-4723-b973-03c28a45b6d5/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-190a1116-3511-42dc-99e6-81ebef79217f +Openstack-Request-Id: req-eb7bb063-ab59-4dff-842a-04cb8f8f359e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.25 +X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/volume/targets/?limit=3 {} -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version ... ok -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path_none -ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path_none ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits ... ok -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -GOT:{'ports': []} -GET: /v1/ports?address=aa:bb:cc:dd:ee:ff {} -GOT:{'ports': []} -GET: /v1/portgroups/123 123/ports {} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/name', 'value': 'new name', 'op': 'replace'}] 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\"}"} -GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/ports?sort_key=uuid {} -GOT:{'ports': [{'uuid': '1dac7897-4989-4d29-b943-1938776ef95c', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/1dac7897-4989-4d29-b943-1938776ef95c', 'rel': 'self'}, {'href': 'http://localhost/ports/1dac7897-4989-4d29-b943-1938776ef95c', 'rel': 'bookmark'}]}, {'uuid': '226f9111-3503-4c34-aeab-2a27a140a7b5', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/226f9111-3503-4c34-aeab-2a27a140a7b5', 'rel': 'self'}, {'href': 'http://localhost/ports/226f9111-3503-4c34-aeab-2a27a140a7b5', 'rel': 'bookmark'}]}, {'uuid': '8c45975e-681a-4783-9113-170dd698bdf6', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/8c45975e-681a-4783-9113-170dd698bdf6', 'rel': 'self'}, {'href': 'http://localhost/ports/8c45975e-681a-4783-9113-170dd698bdf6', 'rel': 'bookmark'}]}]} -GET: /v1/ports?sort_key=pxe_enabled {} -GOT:{'ports': [{'uuid': '48fd95f6-32b2-4c6c-ac26-f9cb30c86bb0', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/48fd95f6-32b2-4c6c-ac26-f9cb30c86bb0', 'rel': 'self'}, {'href': 'http://localhost/ports/48fd95f6-32b2-4c6c-ac26-f9cb30c86bb0', 'rel': 'bookmark'}]}, {'uuid': '72f7845f-f8ea-4523-aaed-76dd2f5b5b01', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/72f7845f-f8ea-4523-aaed-76dd2f5b5b01', 'rel': 'self'}, {'href': 'http://localhost/ports/72f7845f-f8ea-4523-aaed-76dd2f5b5b01', 'rel': 'bookmark'}]}]} -GET: /v1/ports?sort_key=foo {} -GOT:Response: 400 Bad Request +Openstack-Request-Id: req-5d1470f4-be61-4351-9261-9f11875303eb +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PATCH: /v1/nodes/23832270-40a0-46b8-a4ea-0816b1780fe9 [{'path': '/network_interface', 'op': 'remove'}] +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop ... ok +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface ... ok +ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context +ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context ... ok +:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive ... ok +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound ... ok +ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context_with_environ +ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context_with_environ ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:40.595277+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:41.141730+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:41.141730+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid ... ok +ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict +ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_deploy_steps +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_deploy_steps ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_003_nodes_post_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_003_nodes_post_member ... ok +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled ... ok +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_unbound +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_unbound ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface ... ok +ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict_older_api_server +ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict_older_api_server ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid ... ok +ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure +ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired ... ok +ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context +ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context ... ok +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-274b0508-f97a-45e8-9256-c335ef9503ee +Openstack-Request-Id: req-a259afb2-431b-4e10-926c-d3953fedf82c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} -GET: /v1/ports?sort_key=extra {} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:39.051801+00:00", "updated_at": "2024-01-06T15:33:39.056748+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7997ffb9-b11e-4921-a99b-d1e619b6d41f +Openstack-Request-Id: req-d22e09a6-1b8e-4d56-9cf8-d4ae8f1e4601 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} +{"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}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-102cef44-c49f-4840-b2e2-b1e4d9c0a7d6 +Openstack-Request-Id: req-d291ddce-fa85-477e-8658-49b3ab310e5b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-340baf56-6d49-40b8-b60e-0cce35401959 +Openstack-Request-Id: req-4afa0066-9762-4463-a20d-e1eac0321868 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value local_link_connection is an invalid field for sorting\", \"debuginfo\": null}"} -GET: /v1/ports?sort_key=pxe_enabled {} -GOT:Response: 406 Not Acceptable +{"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}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-4846aa49-ce62-45b3-b1e2-867e2e6dd7ac +Openstack-Request-Id: req-8bd3160a-887d-4e89-bffb-b95985f6992e X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/bad/path {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: / {} -GOT:{'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.80'}, 'versions': [{'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}]} -GET: /v1/foo {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'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 -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -DELETE: /v1/ -GOT:Response: 405 Method Not Allowed +Openstack-Request-Id: req-9ba87b65-85c5-44d3-a2a6-8edd04f0d31d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:40.972569+00:00", "updated_at": "2024-01-06T15:33:40.978760+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-59cfa7f0-0e52-4bb8-980b-6408639ed284 +Openstack-Request-Id: req-b86c19bb-cf2f-49c7-a6ea-9f83e63e2c61 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/ {} -GOT:{'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.80'}, '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'}]} -GET: /v1/ {} -GOT:{'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.80'}, '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'}]} -GET: /v1/ {} -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root ... ok -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set ... ok -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface_instance_info_override -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface_instance_info_override ... ok -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces ... ok -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_network_interface_instance_info_override -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_network_interface_instance_info_override ... ok -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface ... ok -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf ... ok -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces ... ok -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_connection_error -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_connection_error ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_empty -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_empty ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_error -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_error ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_noauth -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_noauth ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_invalid_json -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_invalid_json ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_mold_connection_error_exceeded -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_mold_connection_error_exceeded ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift_noauth -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift_noauth ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error_exceeded -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error_exceeded ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_error -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_error ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_noauth -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_noauth ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift ... ok -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift_noauth -ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift_noauth ... ok -ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive -ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive ... ok -ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn -ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled ... ok -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean ... ok -ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error -ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_getting_current -ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_getting_current ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_in_background_task -ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_in_background_task ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_existing -ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_existing ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_node_already_locked -ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_node_already_locked ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_valid -ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_valid ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_validate_fail -ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_worker_pool_full -ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_worker_pool_full ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_ramdisk_deploy -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_ramdisk_deploy ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover ... ok -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.80 +{"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}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4b24a649-dcd1-4e31-b11e-0412baa4b9b8 +Openstack-Request-Id: req-1b4c3db5-4486-4def-9322-60a86044ab8a X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'target': 'provide', 'clean_steps': 'foo'} +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:41.707856+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a17a1773-8cfe-4250-9966-4464d8612655 +Openstack-Request-Id: req-e63639b4-bf39-4b0b-b692-af94856e8a49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-54e83e03-af43-4210-8acd-adb7b1bd7e51 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:42.487761+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] +ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup +ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup ... ok +ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start +ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted', 'configdrive': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e2f1c2da-009e-4296-9c40-72ad888b92cb +Openstack-Request-Id: req-a55b128e-14a5-4d01-a4df-9a5e5ddeaad8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -16139,7 +14799,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-3dd53d24-56af-41a4-8b88-5edb87136a15 +Openstack-Request-Id: req-02a76525-b3b0-477a-ad2b-b1d3ba13f692 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -16147,7 +14807,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-2c490ad5-e44e-4512-a2b7-54450ed579bf +Openstack-Request-Id: req-eb9d4384-f6ce-4069-8cd1-259262a38550 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -16155,7 +14815,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'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-3954eabd-aad7-4526-91d3-fc32476770b4 +Openstack-Request-Id: req-809ab763-58ae-4072-a696-3cf020bca62d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -16163,7 +14823,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'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-4884c06e-0d1e-473b-b40f-61a3a454a409 +Openstack-Request-Id: req-237b0f6b-eb5d-472e-940e-82550caaf78b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 @@ -16171,7 +14831,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'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-29180005-dc50-4130-8fb1-19a35882612a +Openstack-Request-Id: req-e867d530-2d86-491c-9ec4-84a665bed3b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 @@ -16179,7 +14839,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': ['aabb']} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7408fe97-eacd-4c86-99d9-ab6b738e8e51 +Openstack-Request-Id: req-57dd0da7-0611-4e27-b1b9-011d078833a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 @@ -16187,7 +14847,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': '{"meta_data": '} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6c06fdb7-cc89-41b0-a240-24decb2b9f0e +Openstack-Request-Id: req-12c18036-25c8-45f9-934d-3c73e98c655a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 @@ -16195,7 +14855,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'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-ca7eae51-b8e0-4bf6-84b2-21334ae5d063 +Openstack-Request-Id: req-6b56e5ee-6929-4c8b-a510-644c8087cba3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -16203,7 +14863,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'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-6933cb7d-8968-4d15-bab7-467b399951e7 +Openstack-Request-Id: req-025ccb6d-755f-4b5f-a824-3af735d84530 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -16211,7 +14871,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'deploy_steps': [{'interface': 'bios', 'step': 'factory_reset'}]} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-98f3ddf7-9aae-41fc-b144-f6b201043315 +Openstack-Request-Id: req-b802c59c-b223-43dd-af1d-dd6cd98d3c41 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -16219,7 +14879,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-01520f2d-6441-45b8-8b49-ad15a69dfe2b +Openstack-Request-Id: req-a4257a7e-ac3f-449e-bc54-32ff636733aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -16227,4135 +14887,3215 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild', 'configdrive': 'foo'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-4e4552ec-65e9-498c-87cf-cddc285c66f7 +Openstack-Request-Id: req-0166b46e-bd8c-4ee8-b30e-6d88f95aa5f2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild', 'deploy_steps': [{'interface': 'bios', 'step': 'factory_reset', 'priority': 95, 'args': {}}]} -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_deploy_steps -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_deploy_steps ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_undeploy -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_undeploy ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_None -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_None ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_boo -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_boo ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_nullstr -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_nullstr ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_older_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_older_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_undocumented_request_zero -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_undocumented_request_zero ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_invalid_request_two -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_invalid_request_two ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry ... ok -ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_cleaning -ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_cleaning ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state ... ok -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success ... ok -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-0c65a547-8116-49be-8925-555d05d50851 +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-2b2affbb-1806-442c-8947-cd9a5948638a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:11.504333+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -driver -fake-driverz -ACL Test GOT Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.1 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild', 'configdrive': 'foo'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0c65a547-8116-49be-8925-555d05d50851 +Openstack-Request-Id: req-42686780-85b3-4020-afd6-835001f25ae0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:11.504333+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -API ACL Testing Path get /v1/nodes -GET: /v1/nodes {} -GOT:Response: 200 OK +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps ... ok +ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context +ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance ... ok +ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked +ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked ... ok +ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start_failure +ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start_failure ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:41.801530+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': True, 'protected_reason': 'reason!', 'provision_state': 'active', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/2383bd9d-cb57-45de-a197-2099e0667479 {} +GOT:{'uuid': '2383bd9d-cb57-45de-a197-2099e0667479', 'created_at': '2024-01-06T15:33:42.412804+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'active', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': True, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/2383bd9d-cb57-45de-a197-2099e0667479', 'rel': 'self'}, {'href': 'http://localhost/nodes/2383bd9d-cb57-45de-a197-2099e0667479', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/2383bd9d-cb57-45de-a197-2099e0667479/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2383bd9d-cb57-45de-a197-2099e0667479/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/2383bd9d-cb57-45de-a197-2099e0667479/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/2383bd9d-cb57-45de-a197-2099e0667479/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/2383bd9d-cb57-45de-a197-2099e0667479/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/2383bd9d-cb57-45de-a197-2099e0667479/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/2383bd9d-cb57-45de-a197-2099e0667479/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/2383bd9d-cb57-45de-a197-2099e0667479/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/1ae0414e-4ff7-41c3-ab80-068207ee764c {} +GOT:{'uuid': '1ae0414e-4ff7-41c3-ab80-068207ee764c', 'created_at': '2024-01-06T15:33:42.592691+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'active', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1ae0414e-4ff7-41c3-ab80-068207ee764c', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ae0414e-4ff7-41c3-ab80-068207ee764c', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1ae0414e-4ff7-41c3-ab80-068207ee764c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ae0414e-4ff7-41c3-ab80-068207ee764c/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1ae0414e-4ff7-41c3-ab80-068207ee764c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ae0414e-4ff7-41c3-ab80-068207ee764c/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1ae0414e-4ff7-41c3-ab80-068207ee764c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ae0414e-4ff7-41c3-ab80-068207ee764c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1ae0414e-4ff7-41c3-ab80-068207ee764c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ae0414e-4ff7-41c3-ab80-068207ee764c/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_node_associated_with_another_instance +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_node_associated_with_another_instance ... ok +POST: /v1/volume/connectors {'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-74f44e35-2e2d-4dc7-a89d-740244467e5f +Openstack-Request-Id: req-fd261236-1fd4-4fe6-99a2-71a78ecb3e5b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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": "1a69532e-08e0-4fc3-a2aa-2ebefcdf52aa", "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"}]}]} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_009_nodes_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_009_nodes_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_010_nodes_get_other_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_010_nodes_get_other_admin ... skipped 'Not implemented yet' -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock ... ok -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success ... ok -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_boot_timeout -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_boot_timeout ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_disabled -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_disabled ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception ... ok -ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_deploy -ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_deploy ... ok -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_agent_token -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_agent_token ... ok -ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers -ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries ... ok -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits -ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config ... ok -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'type' is a required property\", \"debuginfo\": null}"} +POST: /v1/volume/connectors {'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 -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-c546b6e0-39fb-4fe7-860f-ccef8b7723b9 +Openstack-Request-Id: req-c7c65d96-82a6-4e55-8e5b-d6a1857b1ee2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:10.546304+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", "cpus": "8", "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, "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:10.546304+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': None, 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"} +POST: /v1/volume/connectors {'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 -Openstack-Request-Id: req-1f380de3-3f3a-4e88-9898-be8bd0560d77 +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-c69c57c0-7676-4a0d-b8a1-0baddd0f7764 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}} -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout ... ok -ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers -ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers ... ok -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_patient -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_patient ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok ... ok -ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker -ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_agent_token_older_version -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_agent_token_older_version ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach ... ok -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles ... ok -ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers -ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup ... ok -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector ... ok -ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization -ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_newer_version -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_newer_version ... ok -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts ... ok -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_raises_error -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_raises_error ... ok -ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class -ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class ... ok -ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node -ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach ... ok -GOT:{'nodes': [{'uuid': 'f7c9821e-fc7d-4f1b-8207-efeb6b7b8f9d', 'created_at': '2025-02-07T21:28:15.746662+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': 'project1', 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/f7c9821e-fc7d-4f1b-8207-efeb6b7b8f9d', 'rel': 'self'}, {'href': 'http://localhost/nodes/f7c9821e-fc7d-4f1b-8207-efeb6b7b8f9d', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/f7c9821e-fc7d-4f1b-8207-efeb6b7b8f9d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f7c9821e-fc7d-4f1b-8207-efeb6b7b8f9d/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f7c9821e-fc7d-4f1b-8207-efeb6b7b8f9d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f7c9821e-fc7d-4f1b-8207-efeb6b7b8f9d/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/f7c9821e-fc7d-4f1b-8207-efeb6b7b8f9d/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/f7c9821e-fc7d-4f1b-8207-efeb6b7b8f9d/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/f7c9821e-fc7d-4f1b-8207-efeb6b7b8f9d/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/f7c9821e-fc7d-4f1b-8207-efeb6b7b8f9d/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?lessee=project2 {} -GOT:{'nodes': [{'uuid': 'c94fcb12-d8ed-4904-b7d9-a8e3bb382bdb', 'created_at': '2025-02-07T21:28:15.751422+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': 'project2', 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/c94fcb12-d8ed-4904-b7d9-a8e3bb382bdb', 'rel': 'self'}, {'href': 'http://localhost/nodes/c94fcb12-d8ed-4904-b7d9-a8e3bb382bdb', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/c94fcb12-d8ed-4904-b7d9-a8e3bb382bdb/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c94fcb12-d8ed-4904-b7d9-a8e3bb382bdb/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c94fcb12-d8ed-4904-b7d9-a8e3bb382bdb/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c94fcb12-d8ed-4904-b7d9-a8e3bb382bdb/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c94fcb12-d8ed-4904-b7d9-a8e3bb382bdb/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c94fcb12-d8ed-4904-b7d9-a8e3bb382bdb/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c94fcb12-d8ed-4904-b7d9-a8e3bb382bdb/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c94fcb12-d8ed-4904-b7d9-a8e3bb382bdb/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?lessee=project1 {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:38.336461+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 {'uuid': '91b5f5a0-c528-4069-b1a4-419ea205270e', '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-4db49e74-40dd-47d5-9001-18ca281fa2e7 +Openstack-Request-Id: req-6e027b8f-0b98-4620-85db-595f6fe7b5ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type iqn and connector ID test-connector-id-456 already exists.\", \"debuginfo\": null}"} +POST: /v1/volume/connectors {'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 -Openstack-Request-Id: req-20a40956-ff56-456d-b15d-37f5e73442b7 +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-27dfb264-09aa-42a8-9676-a2fb091bfe6c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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?owner=fred {} -GOT:{'nodes': [{'uuid': '22885e6e-eda2-4f2c-97f2-48592744fe72', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/22885e6e-eda2-4f2c-97f2-48592744fe72', 'rel': 'self'}, {'href': 'http://localhost/nodes/22885e6e-eda2-4f2c-97f2-48592744fe72', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?owner=bob {} -GOT:{'nodes': [{'uuid': 'a98b8950-3cdf-4f8f-8622-39427bc0b62c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/a98b8950-3cdf-4f8f-8622-39427bc0b62c', 'rel': 'self'}, {'href': 'http://localhost/nodes/a98b8950-3cdf-4f8f-8622-39427bc0b62c', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?owner=fred {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_upgade_exception_no_retries -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_upgade_exception_no_retries ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail ... ok -ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad -ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad ... ok -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspect_wait -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspect_wait ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_tls_required -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_tls_required ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create ... ok -ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails -ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list ... ok -GOT:{'targets': [{'uuid': 'e2c36f7d-4273-4cc5-b05d-68844c93a041', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/e2c36f7d-4273-4cc5-b05d-68844c93a041', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e2c36f7d-4273-4cc5-b05d-68844c93a041', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '100d2158-ac2f-487b-9e64-5bd33d96e1ee', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/100d2158-ac2f-487b-9e64-5bd33d96e1ee', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/100d2158-ac2f-487b-9e64-5bd33d96e1ee', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '168dcdf6-e032-4b74-8fca-54d67d9005ba', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/168dcdf6-e032-4b74-8fca-54d67d9005ba', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/168dcdf6-e032-4b74-8fca-54d67d9005ba', '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=168dcdf6-e032-4b74-8fca-54d67d9005ba'} -GET: /v1/volume/targets?fields=uuid,extra {} -GOT:{'targets': [{'uuid': '731a7556-825b-464a-8331-6a231ad9eaae', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/731a7556-825b-464a-8331-6a231ad9eaae', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/731a7556-825b-464a-8331-6a231ad9eaae', 'rel': 'bookmark'}]}, {'uuid': '9bce1c5d-174b-442e-b825-88609f4ac4d2', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/9bce1c5d-174b-442e-b825-88609f4ac4d2', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/9bce1c5d-174b-442e-b825-88609f4ac4d2', 'rel': 'bookmark'}]}, {'uuid': '9ceebdad-436b-4254-a1aa-845290df6402', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/9ceebdad-436b-4254-a1aa-845290df6402', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/9ceebdad-436b-4254-a1aa-845290df6402', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=9ceebdad-436b-4254-a1aa-845290df6402'} -GET: /v1/volume/targets {} -GOT:{'targets': [{'uuid': 'f4e61593-68f2-44c2-b5d9-718294cf9951', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/f4e61593-68f2-44c2-b5d9-718294cf9951', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f4e61593-68f2-44c2-b5d9-718294cf9951', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '1606d3db-3839-42a7-9a0b-f32dbbe068b9', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/1606d3db-3839-42a7-9a0b-f32dbbe068b9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1606d3db-3839-42a7-9a0b-f32dbbe068b9', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'b1580a4a-7482-4320-8edd-ac4b0388e5dd', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/b1580a4a-7482-4320-8edd-ac4b0388e5dd', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/b1580a4a-7482-4320-8edd-ac4b0388e5dd', '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=b1580a4a-7482-4320-8edd-ac4b0388e5dd'} -GET: /v1/volume/targets?detail=True&limit=3 {} -GOT:{'targets': [{'uuid': '5a937c93-5b22-49db-8c3d-88332ef7713b', 'created_at': '2025-02-07T21:28:25.073209+00:00', 'updated_at': None, 'boot_index': 0, 'extra': {}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/5a937c93-5b22-49db-8c3d-88332ef7713b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5a937c93-5b22-49db-8c3d-88332ef7713b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '9d8189bb-07ed-4dca-b7c9-266d23fbfaf0', 'created_at': '2025-02-07T21:28:25.075116+00:00', 'updated_at': None, 'boot_index': 1, 'extra': {}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/9d8189bb-07ed-4dca-b7c9-266d23fbfaf0', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/9d8189bb-07ed-4dca-b7c9-266d23fbfaf0', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '7f600850-d4a7-4c3d-8f3a-f0d231c03ea4', 'created_at': '2025-02-07T21:28:25.076741+00:00', 'updated_at': None, 'boot_index': 2, 'extra': {}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/7f600850-d4a7-4c3d-8f3a-f0d231c03ea4', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/7f600850-d4a7-4c3d-8f3a-f0d231c03ea4', '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=7f600850-d4a7-4c3d-8f3a-f0d231c03ea4'} -GET: /v1/volume/targets?detail=True {} -GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:25.226655+00:00', 'updated_at': None, '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?detail=True {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:38.713147+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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:33:38.713147+00:00', 'updated_at': None, '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'}}, '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 {'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 -Openstack-Request-Id: req-393bcf6d-c48e-491c-adbb-62bb3d004267 +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-19559c86-b915-4a7f-a000-ee4f79a02302 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True&fields=boot_index,extra {} -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:39.135975+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"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-9915ff8a-bdae-4933-bae6-de69bf8ca760 +Openstack-Request-Id: req-6dcf1e8e-6860-446f-adff-e1ca04bef338 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} -GET: /v1/volume/targets?detail=True&node=test-node {} -GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:25.697344+00:00', 'updated_at': None, '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?detail=False {} -GOT:{'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'}]} -GET: /v1/volume/targets?detail=True {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/volume/targets/detail {} -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm ... ok -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name ... ok -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail ... ok -ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts -ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_agent_token -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_agent_token ... ok -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address -ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate ... ok -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_maintenance -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_maintenance ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid -ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid ... ok -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_agent_verify_ca -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_agent_verify_ca ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid ... ok -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port -ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception ... ok -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-6f724646-a7eb-4d79-ad79-68ec0a1a1d96 +Openstack-Request-Id: req-6dcf1e8e-6860-446f-adff-e1ca04bef338 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-61a1d692-eabd-41f7-a6f2-c41765520751 +Openstack-Request-Id: req-db98fe2f-e2b4-4ef9-bd2f-ba17d5d8a7c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0bcde92a-f8e1-45cc-9043-c5cf0f3ac4e8 +Openstack-Request-Id: req-db98fe2f-e2b4-4ef9-bd2f-ba17d5d8a7c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes -GET: /v1/nodes {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f03e8119-8750-4fe0-9668-601bb5be51d8 +Openstack-Request-Id: req-df90f8f3-55fa-4be9-9936-6aee3ecbc1b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes -GET: /v1/nodes {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail ... ok +ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_dict_get_auth_token_info +ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_dict_get_auth_token_info ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_004_nodes_post_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_004_nodes_post_observer ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_hidden_in_lower_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears ... ok +ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start_no_rpc +ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start_no_rpc ... ok +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node ... ok +ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values +ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7d7f4a58-9dd1-4d86-aa97-03556bbce48e +Openstack-Request-Id: req-732d7190-99c7-4498-b3fe-1e2c958050c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": []} -ACL Test GOT Response: 200 OK +{"uuid": "23832270-40a0-46b8-a4ea-0816b1780fe9", "created_at": "2024-01-06T15:33:41.200357+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/23832270-40a0-46b8-a4ea-0816b1780fe9", "rel": "self"}, {"href": "http://localhost/nodes/23832270-40a0-46b8-a4ea-0816b1780fe9", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/23832270-40a0-46b8-a4ea-0816b1780fe9/ports", "rel": "self"}, {"href": "http://localhost/nodes/23832270-40a0-46b8-a4ea-0816b1780fe9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/23832270-40a0-46b8-a4ea-0816b1780fe9/states", "rel": "self"}, {"href": "http://localhost/nodes/23832270-40a0-46b8-a4ea-0816b1780fe9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/23832270-40a0-46b8-a4ea-0816b1780fe9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/23832270-40a0-46b8-a4ea-0816b1780fe9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/23832270-40a0-46b8-a4ea-0816b1780fe9/volume", "rel": "self"}, {"href": "http://localhost/nodes/23832270-40a0-46b8-a4ea-0816b1780fe9/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/203de5ed-2b95-4bd2-876b-8915817011cd [{'path': '/storage_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7d7f4a58-9dd1-4d86-aa97-03556bbce48e +Openstack-Request-Id: req-c2edab62-25a0-48f2-afc9-2d1c5976cea1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": []} -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} -GOT:Response: 403 Forbidden +{"uuid": "203de5ed-2b95-4bd2-876b-8915817011cd", "created_at": "2024-01-06T15:33:41.908998+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/203de5ed-2b95-4bd2-876b-8915817011cd", "rel": "self"}, {"href": "http://localhost/nodes/203de5ed-2b95-4bd2-876b-8915817011cd", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/203de5ed-2b95-4bd2-876b-8915817011cd/ports", "rel": "self"}, {"href": "http://localhost/nodes/203de5ed-2b95-4bd2-876b-8915817011cd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/203de5ed-2b95-4bd2-876b-8915817011cd/states", "rel": "self"}, {"href": "http://localhost/nodes/203de5ed-2b95-4bd2-876b-8915817011cd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/203de5ed-2b95-4bd2-876b-8915817011cd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/203de5ed-2b95-4bd2-876b-8915817011cd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/203de5ed-2b95-4bd2-876b-8915817011cd/volume", "rel": "self"}, {"href": "http://localhost/nodes/203de5ed-2b95-4bd2-876b-8915817011cd/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/a1af13d1-8894-4f24-bb96-a28f83d17a39 [{'path': '/instance_uuid', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-86a99540-021c-4ea1-bc1b-35f7fa7eb1b5 +Openstack-Request-Id: req-9a8449c0-4a93-4442-98e6-1da848f24532 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "a1af13d1-8894-4f24-bb96-a28f83d17a39", "created_at": "2024-01-06T15:33:42.643543+00:00", "updated_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", "cpus": "8", "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/a1af13d1-8894-4f24-bb96-a28f83d17a39", "rel": "self"}, {"href": "http://localhost/nodes/a1af13d1-8894-4f24-bb96-a28f83d17a39", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a1af13d1-8894-4f24-bb96-a28f83d17a39/ports", "rel": "self"}, {"href": "http://localhost/nodes/a1af13d1-8894-4f24-bb96-a28f83d17a39/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/e32be9f6-8ae7-4629-9f02-199ddd7ef940 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked ... ok +ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail +ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args2 +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args2 ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_undeploy +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_undeploy ... ok +ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint +ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:43.057664+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:43.057664+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:43.675550+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async ... ok +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_reason_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_reason_hidden_in_lower_version ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail ... ok +ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success +ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_005_nodes_get_node_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_005_nodes_get_node_admin ... ok +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_with_reason +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_with_reason ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_042_nodes_management_inject_nmi_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_042_nodes_management_inject_nmi_put_member ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock ... ok +PATCH: /v1/deploy_templates/f3f7e426-aa5c-4b53-b85f-18b1d5ea0f59 [{'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-718718fa-c050-449d-be2b-3451cbe7f028 +Openstack-Request-Id: req-41528a63-a20e-409a-87dd-6e6499c7dd80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} -GOT:Response: 403 Forbidden +{"uuid": "f3f7e426-aa5c-4b53-b85f-18b1d5ea0f59", "created_at": "2024-01-06T15:33:40.167781+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f3f7e426-aa5c-4b53-b85f-18b1d5ea0f59", "rel": "self"}, {"href": "http://localhost/deploy_templates/f3f7e426-aa5c-4b53-b85f-18b1d5ea0f59", "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}]} +PATCH: /v1/deploy_templates/8092d3f4-cfe6-47f9-8118-52e6158ffb3e [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-fe91b815-8f77-40b6-825b-e64bf4eb8132 +Openstack-Request-Id: req-f534c353-f19a-4c2f-9614-6a4aa0435735 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/b2a83213-2a76-47e0-a57d-12e12634c9ef [{'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-707a56c2-66e2-4ac4-afe4-bada120c6d4e +Openstack-Request-Id: req-5fb94215-2cdb-4bc4-acb6-c548b5177461 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found +{"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}"} +PATCH: /v1/deploy_templates/ec818c5c-3340-481d-8b62-0be4af1da6ce [{'path': '/foo', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-889e234f-f018-416b-9846-4176512d1f3d +Openstack-Request-Id: req-1b9b552a-d8c3-4dd1-80d7-597e76e1344e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/4d834b21-24b4-479d-84ed-7818ab738185 [{'path': '/steps/1', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2a14df1c-00b4-4eaa-a37a-69b3afc3487c +Openstack-Request-Id: req-cd4e35ff-aa03-4e9a-8a91-b4de0ba2a1b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +{"uuid": "4d834b21-24b4-479d-84ed-7818ab738185", "created_at": "2024-01-06T15:33:41.639506+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/4d834b21-24b4-479d-84ed-7818ab738185", "rel": "self"}, {"href": "http://localhost/deploy_templates/4d834b21-24b4-479d-84ed-7818ab738185", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}]} +PATCH: /v1/deploy_templates/13521333-8303-4389-86dd-2ec534329680 [{'path': '/name', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-fe0b90a5-88c5-458b-b5d0-d7ace21bf499 +Openstack-Request-Id: req-5267f61b-b718-4f72-9f7a-e0b9f41ed196 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/1bffe8c1-2d5f-42f8-906f-e4ffb6308032 [{'path': '/non-existent', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-38b2fec9-8673-4d55-a915-288f812fbecf +Openstack-Request-Id: req-1bc16ead-40f0-4713-9446-dd9366e60326 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /non-existent. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/db9ee617-f61a-405e-9dd3-2afee8e0c072 [{'path': '/steps/1', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c82f0330-cb9b-4753-a883-669f2fea3cd2 +Openstack-Request-Id: req-bfa5a74e-f67e-489c-8c5d-976daeabd7cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'remove'}'. Reason: can't remove a non-existent object '1'\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/99701fd7-3322-4cc9-9e53-f2b706e718ac [{'path': '/steps/0/non-existent', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-29c9b6ac-b467-463b-9846-52787d5fcba4 +Openstack-Request-Id: req-a9744500-5b7f-43f1-9137-7f34c1e93d26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_021_nodes_node_ident_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_021_nodes_node_ident_delete_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_022_nodes_node_ident_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_022_nodes_node_ident_delete_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_023_nodes_validate_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_023_nodes_validate_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_024_nodes_validate_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_024_nodes_validate_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_025_nodes_validate_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_025_nodes_validate_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_026_nodes_maintenance_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_026_nodes_maintenance_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_027_nodes_maintenance_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_027_nodes_maintenance_put_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_028_nodes_maintenance_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_028_nodes_maintenance_put_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_029_nodes_maintenance_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_029_nodes_maintenance_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_030_nodes_maintenance_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_030_nodes_maintenance_delete_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_031_nodes_maintenance_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_031_nodes_maintenance_delete_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_032_nodes_management_boot_device_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_032_nodes_management_boot_device_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_033_nodes_management_boot_device_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_033_nodes_management_boot_device_put_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_034_nodes_management_boot_device_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_034_nodes_management_boot_device_put_observer ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address ... ok -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_agent_version -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_agent_version ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist ... ok -ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector -ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner_no_match -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner_no_match ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked -ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list ... ok -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-89d7fc58-2c47-4d71-b538-4509311f7722 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild', 'configdrive': 'foo'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/0/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/bac9d41e-6466-4b04-8390-a45abb8f62fa [{'path': '/steps/0', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b28bb50f-36fe-44ac-a51a-7583496bcf2f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-0ca327b9-36a9-47d6-8256-0f2d2b28453f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-9ae6b2b2-1fc1-44f2-83cc-583625b66eba -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'undeploy'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-6fe03585-16fd-4ddd-a356-6a476ccb395e +Openstack-Request-Id: req-dc204a81-1be3-4739-85e7-062889ce85ba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} -GOT:Response: 204 No Content -Openstack-Request-Id: req-221ca944-d2a7-49c7-baf0-29a7d7911edb +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/6bc96a1d-bfc2-4d24-b630-f73d1b925f4e [{'path': '/steps', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-6a8bd483-e177-46ea-b8c6-1225ffe3a971 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.12 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'steps' is a required property\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/c1b21089-0c06-4a59-bc08-7406b16615c1 [{'path': '/uuid', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-40fe06d5-0d76-4b4d-bdfb-caf8698accfe +Openstack-Request-Id: req-b4766cd9-29b4-4994-8443-20db69eb42ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/7c0ad63e-e064-4d84-8bed-c1538f764a1b [{'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}]}] +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete ... ok GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-84ad2494-4bf8-47d9-8a0b-9ce2c9b1ac95 +Openstack-Request-Id: req-88967b2b-82e6-4ef7-a4dc-fd8f9dc2601e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.12 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"foo\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-59de3ed2-f862-4beb-a2cc-bc75abf50d27 +Openstack-Request-Id: req-8f14ea6a-089e-4476-9935-3948a0b1b810 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-ce914a78-53f7-4473-b038-84ae6b9b641a +Openstack-Request-Id: req-c0d53691-d262-49e6-9116-98371539b044 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': None} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type None and connector ID test-connector-id-123 already exists.\", \"debuginfo\": null}"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8f9d58ab-a576-439c-9400-dec0d81ad561 +Openstack-Request-Id: req-b5d7b1bd-ab2c-473d-a8ad-4d080b2941f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'boo!'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"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}"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'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-da45b0ce-3ac6-4122-beca-22bbd42076f6 +Openstack-Request-Id: req-4f44e127-fe90-4854-84dc-77a722d9b488 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': ''} +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:41.611161+00:00", "updated_at": "2024-01-06T15:33:41.617890+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"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-cfc1131e-a111-4980-982c-8beb69b1ebfd +Openstack-Request-Id: req-8a321564-ef30-4dfd-9d9e-b892b2b583c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': False} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fb147022-7c8b-4433-8fcd-7461e78b0bb9 +Openstack-Request-Id: req-cfddd2ab-8474-415a-9c80-20425353d9db X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': False} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-d9e2aae5-1ae1-4db5-b9b0-936a2d9800d8 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.76 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 0} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-d7c9c79b-69d4-4f7a-af52-5a292bbbe848 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.76 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 2} +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:42.431484+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"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1636ef4c-2a30-44cb-82cb-858430549d62 +Openstack-Request-Id: req-9e1be401-7517-4b61-8ba7-3a963458c636 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': True} -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_older_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_older_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_undocumented_request_one -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_undocumented_request_one ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " - ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_invalid_value -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_invalid_value ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_qs -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_qs ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project_no_match -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project_no_match ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist ... ok -ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on -ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_no_required_agent_token -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_no_required_agent_token ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_name -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_name ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_required_agent_token -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_required_agent_token ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_disable_ramdisk -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_disable_ramdisk ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail ... ok -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_without_agent_version_anaconda -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_without_agent_version_anaconda ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-491b11ec-18ab-464e-bab4-119e4b7071d7 +Openstack-Request-Id: req-145c80dd-8b87-40b4-832d-87dd8b2734e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-999', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6ce9e591-4d7f-4ebb-b85a-c88fc3d52375 +Openstack-Request-Id: req-df08ede0-6b41-4992-a004-08a666f88aaf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:15.403299+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", "cpus": "8", "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"}]} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'guido-van-rossum'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:43.585438+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"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3aee0b12-4494-4cb7-ab43-9688ce8bc8ff +Openstack-Request-Id: req-5b1603c6-fd27-4dc6-8538-d2a87b5ba5f4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:15.743351+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", "cpus": "8", "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"}]} -PATCH: /v1/nodes/f76f0ac0-f206-4e8e-8133-951556d37635 [{'path': '/description', 'value': 'foo', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:43.962894+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"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +PATCH: /v1/volume/connectors/06672dcd-39ae-4e15-bf95-59ae83cb80e3 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json ... ok +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:43.675550+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:44.183597+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'active', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': True, 'retired_reason': 'warranty expired', 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/0dece0e9-094e-4e33-9279-cae9caee247a {} +GOT:{'uuid': '0dece0e9-094e-4e33-9279-cae9caee247a', 'created_at': '2024-01-06T15:33:44.786320+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': 'uefi', 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': True, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/0dece0e9-094e-4e33-9279-cae9caee247a', 'rel': 'self'}, {'href': 'http://localhost/nodes/0dece0e9-094e-4e33-9279-cae9caee247a', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/0dece0e9-094e-4e33-9279-cae9caee247a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0dece0e9-094e-4e33-9279-cae9caee247a/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/0dece0e9-094e-4e33-9279-cae9caee247a/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/0dece0e9-094e-4e33-9279-cae9caee247a/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/0dece0e9-094e-4e33-9279-cae9caee247a/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/0dece0e9-094e-4e33-9279-cae9caee247a/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/0dece0e9-094e-4e33-9279-cae9caee247a/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/0dece0e9-094e-4e33-9279-cae9caee247a/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/887c06bd-fef8-464b-9d40-c17ca0da2d5d {} +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_006_nodes_get_node_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_006_nodes_get_node_member ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_with_false +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_with_false ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version ... ok +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_uuid_associated_with_another_instance +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_uuid_associated_with_another_instance ... ok +GOT:Response: 405 Method Not Allowed Content-Type: application/json -Openstack-Request-Id: req-6083f0cb-3259-41e7-8436-f45f828c4164 +{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '3a4a1dc3-9e51-4671-8b06-4596f493dca6', 'steps': [], 'extra': {}} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-9d63c48d-8053-4453-9cd3-d7b105dbea00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "f76f0ac0-f206-4e8e-8133-951556d37635", "created_at": "2025-02-07T21:28:16.062331+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/f76f0ac0-f206-4e8e-8133-951556d37635", "rel": "self"}, {"href": "http://localhost/nodes/f76f0ac0-f206-4e8e-8133-951556d37635", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f76f0ac0-f206-4e8e-8133-951556d37635/ports", "rel": "self"}, {"href": "http://localhost/nodes/f76f0ac0-f206-4e8e-8133-951556d37635/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f76f0ac0-f206-4e8e-8133-951556d37635/states", "rel": "self"}, {"href": "http://localhost/nodes/f76f0ac0-f206-4e8e-8133-951556d37635/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f76f0ac0-f206-4e8e-8133-951556d37635/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f76f0ac0-f206-4e8e-8133-951556d37635/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f76f0ac0-f206-4e8e-8133-951556d37635/volume", "rel": "self"}, {"href": "http://localhost/nodes/f76f0ac0-f206-4e8e-8133-951556d37635/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/c630f717-cf5f-471d-a082-7a85d2c14960 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra_and_instance_info -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra_and_instance_info ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is too short\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'e7d1864c-94ad-4f57-bcc7-fa0b553bca75', '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-25a2f2d8-021d-4b83-b92b-1f09710f1bc4 +Openstack-Request-Id: req-46cad368-cb2e-4482-bbe1-a146bbec7aa2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for target_uuid: detail\", \"debuginfo\": null}"} -GET: /v1/volume/targets {} -GOT:{'targets': []} -GET: /v1/volume/targets?node=test-node {} -GOT:{'targets': [{'uuid': 'cb526014-3b63-4dc4-b278-e8763fffa494', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/cb526014-3b63-4dc4-b278-e8763fffa494', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/cb526014-3b63-4dc4-b278-e8763fffa494', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '6a027829-56a6-4f1a-bd6b-fde0ee9b1c78', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/6a027829-56a6-4f1a-bd6b-fde0ee9b1c78', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6a027829-56a6-4f1a-bd6b-fde0ee9b1c78', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'ccedd548-d4d0-4691-9a1a-1494028b2965', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/ccedd548-d4d0-4691-9a1a-1494028b2965', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ccedd548-d4d0-4691-9a1a-1494028b2965', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/volume/targets?fields=uuid,extra {} -GOT:{'targets': [{'uuid': 'adad87bf-7e72-48a0-85b4-f635e9424d34', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/adad87bf-7e72-48a0-85b4-f635e9424d34', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/adad87bf-7e72-48a0-85b4-f635e9424d34', 'rel': 'bookmark'}]}, {'uuid': '6c4ce743-2c9e-468a-bc03-db91be237e34', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/6c4ce743-2c9e-468a-bc03-db91be237e34', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6c4ce743-2c9e-468a-bc03-db91be237e34', 'rel': 'bookmark'}]}, {'uuid': 'a749cefe-2691-43ae-a901-8490fec6e32b', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/a749cefe-2691-43ae-a901-8490fec6e32b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a749cefe-2691-43ae-a901-8490fec6e32b', 'rel': 'bookmark'}]}]} -GET: /v1/volume/targets?fields=boot_index&limit=2 {} -GOT:{'targets': [{'boot_index': 0, 'links': [{'href': 'http://localhost/v1/volume/targets/77954518-8905-4217-b2eb-459e9efb264d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/77954518-8905-4217-b2eb-459e9efb264d', 'rel': 'bookmark'}]}, {'boot_index': 1, 'links': [{'href': 'http://localhost/v1/volume/targets/cf850de6-1cd1-4b27-aad3-92581dc146df', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/cf850de6-1cd1-4b27-aad3-92581dc146df', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=cf850de6-1cd1-4b27-aad3-92581dc146df'} -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'object', 'null'\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'e04add2f-fbb4-44b5-9ef6-c18b8a56da62', '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-1a174070-d8bb-4be2-b117-32ccaa2e867f +Openstack-Request-Id: req-9420206c-b1f5-402d-98df-1cbb858ede0f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:26.989791+00:00', 'updated_at': None, '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?fields=boot_index,extra {} -GOT:{'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'}]} -GET: /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\": \"\"}"} -GET: /v1/volume/targets/e604de1a-9597-46b2-8512-63923a1633a9 {} -GOT:{'uuid': 'e604de1a-9597-46b2-8512-63923a1633a9', 'created_at': '2025-02-07T21:28:27.448248+00:00', 'updated_at': None, 'boot_index': 0, 'extra': {}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/e604de1a-9597-46b2-8512-63923a1633a9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e604de1a-9597-46b2-8512-63923a1633a9', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/volume/targets/e604de1a-9597-46b2-8512-63923a1633a9 {} -GOT:{'uuid': 'e604de1a-9597-46b2-8512-63923a1633a9', 'created_at': '2025-02-07T21:28:27.448248+00:00', 'updated_at': None, 'boot_index': 0, 'extra': {}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/e604de1a-9597-46b2-8512-63923a1633a9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e604de1a-9597-46b2-8512-63923a1633a9', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /volume/targets/e604de1a-9597-46b2-8512-63923a1633a9 {} -GOT:{'uuid': 'e604de1a-9597-46b2-8512-63923a1633a9', 'created_at': '2025-02-07T21:28:27.448248+00:00', 'updated_at': None, 'boot_index': 0, 'extra': {}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/e604de1a-9597-46b2-8512-63923a1633a9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e604de1a-9597-46b2-8512-63923a1633a9', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/volume/targets {} -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid ... ok -ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch -ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch ... ok -ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch_validation_failed -ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch_validation_failed ... ok -ironic.tests.unit.common.test_args.ValidateTypesTest.test_types -ironic.tests.unit.common.test_args.ValidateTypesTest.test_types ... ok -ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported -ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported ... ok -ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported -ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_custom -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_custom ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_default -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_default ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_raw_smaller -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_raw_smaller ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_backing_file_present -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_backing_file_present ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_no_file_format -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_no_file_format ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_length -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_length ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_owner -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_owner ... ok -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 42, 'uuid': '4e9d5056-4a93-4e32-b572-ff2e0e65dfd3', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-f74ef358-7fd6-4918-8d01-c47e1d9594f6 +Openstack-Request-Id: req-2129d211-4811-4bec-83f1-815a4d07d0b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:11.371409+00:00", "updated_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", "cpus": "8", "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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'string'\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': None, 'uuid': 'd36da06f-2910-46b2-a581-77598d449fd7', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-78ab505f-bfe7-4a64-9788-ba47da42c387 +Openstack-Request-Id: req-067ca12d-e053-41e9-b247-00f55dbacf42 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:11.907718+00:00", "updated_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", "cpus": "8", "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:11.907718+00:00', 'updated_at': None, 'clean_step': {}, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': 'flat', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, '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'}]} -POST: /v1/nodes {'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', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: None is not of type 'string'\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'b9898706-eec4-4edb-be7e-34b9703d6cd4', 'steps': {}, 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-4482f418-6353-4190-9b1e-7f8e086ae5a9 +Openstack-Request-Id: req-78fa5099-5d6a-4cbc-8176-2794644b86c3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'owner': 'cowsay', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version ... ok -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_type -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_type ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: {} is not of type 'array'\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'd762d2fc-aa7b-4ea4-96d9-ad0df1d8096f', '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-f394aa20-ff58-4d52-8d5f-4a0e91ddd6b9 +Openstack-Request-Id: req-374e17c8-ad93-405b-a0f9-a0a20e5ebe06 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a dict' is not of type 'object'\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'f035d975-23d9-4a5c-b278-f9139eee88f3', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f9427355-262a-4313-9cba-cfefc9aaf6d9 +Openstack-Request-Id: req-53949149-d52c-4172-90ef-f91501833b0a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is not of type 'object'\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '4f1e9b3f-faa9-4ffd-b0d3-6c0e6e7539b1', '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-9191fa13-cd18-44cf-91ab-b3ff24a73440 +Openstack-Request-Id: req-94b249c4-64ed-4798-ac32-dd72d3987d38 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'c28d2dac-ebc5-4afd-a6d2-50746caef44d', '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-296f42da-d517-484f-81d0-df20c703fed3 +Openstack-Request-Id: req-a52556bb-d6f6-4dd2-a795-8a0f66750752 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [3] is not of type 'string'\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '9c67d3bb-0bac-4af0-8cf3-14ce01b19b86', '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-88ae4990-6919-4f27-93d6-c8611cf9ea18 +Openstack-Request-Id: req-11330bda-1f97-4913-9f43-0b3a90102fd1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'foo' is not one of ['power', 'management', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '4ca7e0c1-f60b-466d-a9b6-033c26f94617', '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-bb789356-806d-4b87-86dd-4baaf5d12f07 +Openstack-Request-Id: req-8ac751a1-3fef-4046-87fb-ea7ce1a5aace X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: -1 is less than the minimum of 0\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '3a01e414-c8b7-4228-b2c1-de66338bb97b', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 'not a number'}], 'extra': {}} +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_001_values +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_001_values ... skipped 'These are fake reference values for YAML templating' +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 ... ok +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot_hidden_in_lower_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries ... ok +GOT:{'uuid': '887c06bd-fef8-464b-9d40-c17ca0da2d5d', 'created_at': '2024-01-06T15:33:44.927969+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': 'uefi', 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': False, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/887c06bd-fef8-464b-9d40-c17ca0da2d5d', 'rel': 'self'}, {'href': 'http://localhost/nodes/887c06bd-fef8-464b-9d40-c17ca0da2d5d', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/887c06bd-fef8-464b-9d40-c17ca0da2d5d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/887c06bd-fef8-464b-9d40-c17ca0da2d5d/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/887c06bd-fef8-464b-9d40-c17ca0da2d5d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/887c06bd-fef8-464b-9d40-c17ca0da2d5d/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/887c06bd-fef8-464b-9d40-c17ca0da2d5d/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/887c06bd-fef8-464b-9d40-c17ca0da2d5d/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/887c06bd-fef8-464b-9d40-c17ca0da2d5d/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/887c06bd-fef8-464b-9d40-c17ca0da2d5d/volume', 'rel': 'bookmark'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:45.406927+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:45.406927+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/states {} +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_None +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_None ... ok +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d38b7eb2-031a-4849-9974-25022ff32a89 +Openstack-Request-Id: req-df90f8f3-55fa-4be9-9936-6aee3ecbc1b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-021cd306-c947-4208-bb68-16283b7b6475 +Openstack-Request-Id: req-a1e561ab-de62-4fe7-a388-9d121c7d4c99 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -GOT:Response: 404 Not Found +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:43.930771+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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 +{node_ident} +driver +fake-driverz +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-38979c9c-30eb-4ec6-a30f-378fabc4207e +Openstack-Request-Id: req-a1e561ab-de62-4fe7-a388-9d121c7d4c99 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:43.930771+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-34bdf65e-ba0e-4237-b5ef-484b091c0b48 +Openstack-Request-Id: req-b017081d-57f8-4554-9192-98269d7bc618 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -GOT:Response: 404 Not Found +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-de1815eb-aa7b-4d87-aaf4-53b4fc833f01 +Openstack-Request-Id: req-b017081d-57f8-4554-9192-98269d7bc618 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} -GOT:Response: 404 Not Found +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c2ca97bb-141f-4e27-a3a5-50f9e02f8dbe +Openstack-Request-Id: req-69dd237e-ed92-47e6-a6f4-4b9f021967d7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "e32be9f6-8ae7-4629-9f02-199ddd7ef940", "created_at": "2024-01-06T15:33:43.342413+00:00", "updated_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", "cpus": "8", "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/e32be9f6-8ae7-4629-9f02-199ddd7ef940", "rel": "self"}, {"href": "http://localhost/nodes/e32be9f6-8ae7-4629-9f02-199ddd7ef940", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e32be9f6-8ae7-4629-9f02-199ddd7ef940/ports", "rel": "self"}, {"href": "http://localhost/nodes/e32be9f6-8ae7-4629-9f02-199ddd7ef940/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/cfcd50fa-a577-45b8-aa1e-5dfaca08cc27 [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-78e61c34-e035-4ec2-a476-74b559134fbc +Openstack-Request-Id: req-fef51578-ce0c-473a-8bc1-589ae7e279ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +X-Openstack-Ironic-Api-Version: 1.47 +{"uuid": "cfcd50fa-a577-45b8-aa1e-5dfaca08cc27", "created_at": "2024-01-06T15:33:44.047502+00:00", "updated_at": null, "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", "cpus": "8", "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/cfcd50fa-a577-45b8-aa1e-5dfaca08cc27", "rel": "self"}, {"href": "http://localhost/nodes/cfcd50fa-a577-45b8-aa1e-5dfaca08cc27", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/cfcd50fa-a577-45b8-aa1e-5dfaca08cc27/ports", "rel": "self"}, {"href": "http://localhost/nodes/cfcd50fa-a577-45b8-aa1e-5dfaca08cc27/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/cfcd50fa-a577-45b8-aa1e-5dfaca08cc27/states", "rel": "self"}, {"href": "http://localhost/nodes/cfcd50fa-a577-45b8-aa1e-5dfaca08cc27/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/cfcd50fa-a577-45b8-aa1e-5dfaca08cc27/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/cfcd50fa-a577-45b8-aa1e-5dfaca08cc27/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/cfcd50fa-a577-45b8-aa1e-5dfaca08cc27/volume", "rel": "self"}, {"href": "http://localhost/nodes/cfcd50fa-a577-45b8-aa1e-5dfaca08cc27/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/2d134fe7-7ca9-42c7-b572-c5f8f57eec41 [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-9df5d985-4137-41c8-95e9-dfeca4df55e0 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PATCH: /v1/nodes/ed8fdab8-3c13-48b5-86d6-0a41c10f5661 [{'path': '/automated_clean', 'value': False, 'op': 'replace'}] +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-2b22b6a5-1a09-4a1c-9c0f-e9108e75f487 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PATCH: /v1/nodes/node-57.1 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-74dab71b-bf6f-4762-ae44-06033b06d9c6 +Openstack-Request-Id: req-620f3413-802a-46ea-94ac-e9e5f4681cab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_035_nodes_management_boot_device_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_035_nodes_management_boot_device_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_036_nodes_management_boot_device_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_036_nodes_management_boot_device_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_037_nodes_management_boot_device_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_037_nodes_management_boot_device_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_042_nodes_management_inject_nmi_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_042_nodes_management_inject_nmi_put_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer ... ok +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-57.1 could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1b5484ec-8d02-4227-ad80-5e10b4e44927 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_007_nodes_get_node_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_007_nodes_get_node_observer ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_all_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_all_steps ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_044_nodes_states_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_044_nodes_states_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_045_nodes_states_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_045_nodes_states_get_member ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock ... ok -GOT:{'nodes': [{'uuid': '22885e6e-eda2-4f2c-97f2-48592744fe72', 'created_at': '2025-02-07T21:28:16.228612+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': 'fred', 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/22885e6e-eda2-4f2c-97f2-48592744fe72', 'rel': 'self'}, {'href': 'http://localhost/nodes/22885e6e-eda2-4f2c-97f2-48592744fe72', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/22885e6e-eda2-4f2c-97f2-48592744fe72/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/22885e6e-eda2-4f2c-97f2-48592744fe72/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/22885e6e-eda2-4f2c-97f2-48592744fe72/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/22885e6e-eda2-4f2c-97f2-48592744fe72/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/22885e6e-eda2-4f2c-97f2-48592744fe72/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/22885e6e-eda2-4f2c-97f2-48592744fe72/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/22885e6e-eda2-4f2c-97f2-48592744fe72/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/22885e6e-eda2-4f2c-97f2-48592744fe72/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?owner=bob {} -GOT:{'nodes': [{'uuid': 'a98b8950-3cdf-4f8f-8622-39427bc0b62c', 'created_at': '2025-02-07T21:28:16.234084+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': 'bob', 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/a98b8950-3cdf-4f8f-8622-39427bc0b62c', 'rel': 'self'}, {'href': 'http://localhost/nodes/a98b8950-3cdf-4f8f-8622-39427bc0b62c', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/a98b8950-3cdf-4f8f-8622-39427bc0b62c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a98b8950-3cdf-4f8f-8622-39427bc0b62c/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a98b8950-3cdf-4f8f-8622-39427bc0b62c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a98b8950-3cdf-4f8f-8622-39427bc0b62c/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/a98b8950-3cdf-4f8f-8622-39427bc0b62c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/a98b8950-3cdf-4f8f-8622-39427bc0b62c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/a98b8950-3cdf-4f8f-8622-39427bc0b62c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/a98b8950-3cdf-4f8f-8622-39427bc0b62c/volume', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?owner=fred {} -GOT:Response: 406 Not Acceptable +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_boo +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_boo ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_002_owner_admin_cannot_post_nodes +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_002_owner_admin_cannot_post_nodes ... ok +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_unassociated_node +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_unassociated_node ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:40.292587+00:00', 'updated_at': None, 'clean_step': {}, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': 'flat', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'class1', 'target_power_state': None, 'target_provision_state': None, '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'}]} +POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-11a469d8-7ac9-4c6a-a0b8-77d8aec75397 +Openstack-Request-Id: req-0be0cdfa-29f3-4da8-bb7e-8f84564392a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {} -GOT:Response: 406 Not Acceptable +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}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a6030ad5-e02a-4e44-8853-ddf72f27cb12 +Openstack-Request-Id: req-f887d196-e8b0-45bb-8e8e-08c231614734 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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?provision_state=available {} -GOT:{'nodes': [{'uuid': '033e10ec-18fd-4119-bf86-7ad1628e2ed0', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/033e10ec-18fd-4119-bf86-7ad1628e2ed0', 'rel': 'self'}, {'href': 'http://localhost/nodes/033e10ec-18fd-4119-bf86-7ad1628e2ed0', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?provision_state=deploying {} -GOT:{'nodes': [{'uuid': '81243e98-8b24-431c-971e-25dd92213a49', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'deploying', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/81243e98-8b24-431c-971e-25dd92213a49', 'rel': 'self'}, {'href': 'http://localhost/nodes/81243e98-8b24-431c-971e-25dd92213a49', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?provision_state=test {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-64df3a17-e8a7-4db3-8cf9-a94ed1e41251 +Openstack-Request-Id: req-77e75bb6-16f4-4046-a75c-2f66256fb0d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes?resource_class=foo {} -GOT:{'nodes': [{'uuid': '80099089-547c-4b4a-a1f2-c446e1613c50', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/80099089-547c-4b4a-a1f2-c446e1613c50', 'rel': 'self'}, {'href': 'http://localhost/nodes/80099089-547c-4b4a-a1f2-c446e1613c50', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?resource_class=bar {} -GOT:{'nodes': [{'uuid': 'c229fa5d-bead-490f-950e-a963215819a7', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/c229fa5d-bead-490f-950e-a963215819a7', 'rel': 'self'}, {'href': 'http://localhost/nodes/c229fa5d-bead-490f-950e-a963215819a7', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?resource_class=foo {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_without_version -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_without_version ... ok -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +POST: /v1/nodes/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b101b914-c3e0-4326-87fe-7fab58bf4f1d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "c630f717-cf5f-471d-a082-7a85d2c14960", "created_at": "2025-02-07T21:28:16.461784+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/c630f717-cf5f-471d-a082-7a85d2c14960", "rel": "self"}, {"href": "http://localhost/nodes/c630f717-cf5f-471d-a082-7a85d2c14960", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c630f717-cf5f-471d-a082-7a85d2c14960/ports", "rel": "self"}, {"href": "http://localhost/nodes/c630f717-cf5f-471d-a082-7a85d2c14960/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c630f717-cf5f-471d-a082-7a85d2c14960/states", "rel": "self"}, {"href": "http://localhost/nodes/c630f717-cf5f-471d-a082-7a85d2c14960/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c630f717-cf5f-471d-a082-7a85d2c14960/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c630f717-cf5f-471d-a082-7a85d2c14960/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c630f717-cf5f-471d-a082-7a85d2c14960/volume", "rel": "self"}, {"href": "http://localhost/nodes/c630f717-cf5f-471d-a082-7a85d2c14960/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/9b1b4224-4665-4b6a-b2e6-63ff1f2aaed3 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}, {'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {'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-ce3de1cf-af60-4ad7-9bdc-dc3613a10242 +Openstack-Request-Id: req-79d693c6-4f42-40f1-9cb0-6d8f274163c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "9b1b4224-4665-4b6a-b2e6-63ff1f2aaed3", "created_at": "2025-02-07T21:28:16.772044+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/9b1b4224-4665-4b6a-b2e6-63ff1f2aaed3", "rel": "self"}, {"href": "http://localhost/nodes/9b1b4224-4665-4b6a-b2e6-63ff1f2aaed3", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9b1b4224-4665-4b6a-b2e6-63ff1f2aaed3/ports", "rel": "self"}, {"href": "http://localhost/nodes/9b1b4224-4665-4b6a-b2e6-63ff1f2aaed3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9b1b4224-4665-4b6a-b2e6-63ff1f2aaed3/states", "rel": "self"}, {"href": "http://localhost/nodes/9b1b4224-4665-4b6a-b2e6-63ff1f2aaed3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9b1b4224-4665-4b6a-b2e6-63ff1f2aaed3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9b1b4224-4665-4b6a-b2e6-63ff1f2aaed3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9b1b4224-4665-4b6a-b2e6-63ff1f2aaed3/volume", "rel": "self"}, {"href": "http://localhost/nodes/9b1b4224-4665-4b6a-b2e6-63ff1f2aaed3/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/95deba30-c5ea-47f5-80b6-ba014e0adba7 [{'path': '/description', 'value': 'foo', 'op': 'replace'}, {'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_extra -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_extra ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_instance_info -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_instance_info ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_project -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_project ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_other_error -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_other_error ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +POST: /v1/nodes/volume/connectors {'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 -Openstack-Request-Id: req-ea94f002-1927-4c50-ab81-80a33db0da58 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {'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-befef791-34cb-4b8e-a8d2-03dbb6cd03a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': True} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-c5046784-9be6-435f-9e88-a679008f0e67 +Openstack-Request-Id: req-7017f948-5dbd-49ab-8854-f6d5d7312d5a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.76 +X-Openstack-Ironic-Api-Version: 1.1 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 1} +POST: /v1/nodes/node-109/vendor_passthru/test {'foo': 'bar'} GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-9ea21ca7-1d5e-4455-b066-e0159be04bdc +Openstack-Request-Id: req-547f1d4b-b6e7-4057-b1bb-37cb37741525 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.76 +X-Openstack-Ironic-Api-Version: 1.5 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-21490e24-4ce4-43a8-acbd-729772fe7470 +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test +GOT:Response: 202 Accepted +Openstack-Request-Id: req-c3626ca7-a2e6-449f-9d87-0d68df4c0d41 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -PUT: /v1/nodes/node-39/management/boot_device {'boot_device': 'pxe'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-883e963e-0e76-4967-8e68-2bb021f98c32 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {} +GOT:foo +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} +GOT:{'foo': 'bar'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} +GOT:{'foo': 'bar'} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c7dfd0d8-f92d-4c6b-8d08-edfa10e9cabe +Openstack-Request-Id: req-822f65ab-101f-4c56-bd28-e5223715d02c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device?persistent=True {'boot_device': 'pxe'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-7d980fd6-6c96-44e6-b6b2-f155b54fb591 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support test (disabled or not implemented).\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {'test_key': 'test_value'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-ca3014f2-a2e0-4482-a46a-619abd2ba9d7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device?persistent=blah {'boot_device': 'pxe'} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6828646a-f977-414f-bedc-2cd04a10bad2 +Openstack-Request-Id: req-11663f37-c1f6-427f-8291-f16bd1bdcaa8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/node-39/states/console {'enabled': 'true'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/node-39/states/console -Openstack-Request-Id: req-b832b613-db0c-4ae0-adc7-688cc5fd9a3f +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/52:54:00:cf:2d:31 [{'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\"}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-d7d86066-5137-425b-aaeb-845ecb2f641b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 - -PUT: /v1/nodes/node-39/states/console {'enabled': 'true'} +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:43.622385+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f1e6e2e7-c1fc-4965-aa7e-c3efebf56b4e -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'invalid-value'} -GOT:Response: 400 Bad Request +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +PATCH: /v1/portgroups/pg.1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bb7b61c4-9601-42ce-b4e7-ee849ebad75c +Openstack-Request-Id: req-f9473305-efca-4f00-98a4-faabd801dca2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:44.324940+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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/pg.1.json [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1bc656e2-891f-4e8a-96d8-091498604a77 +Openstack-Request-Id: req-a056b508-05f3-4000-a971-385b9d3ce3d1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'true'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:44.678366+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b3274bcf-be29-4f51-be24-25028a3e2823 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'false'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -Openstack-Request-Id: req-9e85d37e-b5f7-4e75-bb57-1a380cf6e530 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'true'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -Openstack-Request-Id: req-fc65b0c3-2ef9-415d-a6ff-1e6f0cfb56cc +Openstack-Request-Id: req-1fef6de4-a348-47d4-b6c5-0493a86b4503 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system {'state': 'on'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-da71b749-f17c-4a6f-8b1c-110935cb5d16 +X-Openstack-Ironic-Api-Version: 1.38 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:45.049912+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Request-Id: req-5d5bafd6-c976-4e7d-a633-e4d279c11007 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system?state=glow {} +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}"} +PATCH: /v1/portgroups/pg.1 [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-756c68ad-5023-4bd2-8ced-5f56cff5d07b +Openstack-Request-Id: req-6573de21-7f44-46bf-a58c-e447a2f65ac2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"error\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system {'state': 'on'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup pg.1: Cannot change name to invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/d88bc999-4a3a-41ad-a347-9b5bcc6dc479 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f22774c4-9730-44ad-bb25-604a7e9373ca +Openstack-Request-Id: req-334c14ff-53d7-44e9-91c8-8ec0f0eee8f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system?state=on {} -GOT:Response: 204 No Content -Openstack-Request-Id: req-b1823856-5ada-4b66-a921-8652e8dcf859 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup d88bc999-4a3a-41ad-a347-9b5bcc6dc479 could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_nullstr +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_nullstr ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode_hidden_in_lower_version ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-8e77c2eb-0d2a-42ba-b8b1-47cbaf7bf56f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system {'state': 'on'} -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_versioning -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_versioning ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode ... /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 ... ok -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification ... ok -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params ... ok -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification ... ok -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification ... ok -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification ... ok -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets ... ok -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification ... ok -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_update_changed_fields -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_update_changed_fields ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_fields -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_fields ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_sanitize_dict -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_sanitize_dict ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden_no_project -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden_no_project ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_non_admin -ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_non_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_001_values -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_001_values ... skipped 'These are fake reference values for YAML templating' -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_002_owner_admin_cannot_post_nodes -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_002_owner_admin_cannot_post_nodes ... ok -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:45.702713+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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 +{node_ident} +driver +fake-driverz +ACL Test GOT Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-4dd5dd6d-a7fe-4596-8b5c-2a8c6ff483c9 +Openstack-Request-Id: req-8e77c2eb-0d2a-42ba-b8b1-47cbaf7bf56f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:12.800616+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": "cowsay", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "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, "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"}]} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:45.702713+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:12.800616+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': 'cowsay', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long ... ok +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class +ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_and_user_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_and_user_steps ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_008_nodes_get_node_other_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_008_nodes_get_node_other_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_045_nodes_states_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_045_nodes_states_get_member ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_older_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_older_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name +ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name +ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name ... ok +ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive +ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a9578538-2c86-4bdf-b1c5-ca412527dd22 +Openstack-Request-Id: req-b463ef50-c220-4c89-9911-626622837537 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_recorded_project_scope -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_recorded_project_scope ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail ... ok -GOT:{'nodes': [{'uuid': 'd1e98ed3-caca-4f1c-858f-3a071f0c28eb', 'created_at': '2025-02-07T21:28:17.439155+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'foo', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'links': [{'href': 'http://localhost/v1/nodes/d1e98ed3-caca-4f1c-858f-3a071f0c28eb', 'rel': 'self'}, {'href': 'http://localhost/nodes/d1e98ed3-caca-4f1c-858f-3a071f0c28eb', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/d1e98ed3-caca-4f1c-858f-3a071f0c28eb/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/d1e98ed3-caca-4f1c-858f-3a071f0c28eb/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/d1e98ed3-caca-4f1c-858f-3a071f0c28eb/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/d1e98ed3-caca-4f1c-858f-3a071f0c28eb/states', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?resource_class=bar {} -GOT:{'nodes': [{'uuid': '516e0090-f280-4392-a42e-9e0db1dcfa10', 'created_at': '2025-02-07T21:28:17.445048+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'bar', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'links': [{'href': 'http://localhost/v1/nodes/516e0090-f280-4392-a42e-9e0db1dcfa10', 'rel': 'self'}, {'href': 'http://localhost/nodes/516e0090-f280-4392-a42e-9e0db1dcfa10', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/516e0090-f280-4392-a42e-9e0db1dcfa10/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/516e0090-f280-4392-a42e-9e0db1dcfa10/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/516e0090-f280-4392-a42e-9e0db1dcfa10/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/516e0090-f280-4392-a42e-9e0db1dcfa10/states', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?resource_class=fake {} +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1b5484ec-8d02-4227-ad80-5e10b4e44927", "created_at": "2024-01-06T15:33:45.854166+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", "cpus": "8", "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/1b5484ec-8d02-4227-ad80-5e10b4e44927", "rel": "self"}, {"href": "http://localhost/nodes/1b5484ec-8d02-4227-ad80-5e10b4e44927", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1b5484ec-8d02-4227-ad80-5e10b4e44927/ports", "rel": "self"}, {"href": "http://localhost/nodes/1b5484ec-8d02-4227-ad80-5e10b4e44927/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1b5484ec-8d02-4227-ad80-5e10b4e44927/states", "rel": "self"}, {"href": "http://localhost/nodes/1b5484ec-8d02-4227-ad80-5e10b4e44927/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1b5484ec-8d02-4227-ad80-5e10b4e44927/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1b5484ec-8d02-4227-ad80-5e10b4e44927/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1b5484ec-8d02-4227-ad80-5e10b4e44927/volume", "rel": "self"}, {"href": "http://localhost/nodes/1b5484ec-8d02-4227-ad80-5e10b4e44927/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/c81f4a85-aa5a-470e-b720-5cecebedac08 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-1582830c-5af8-49c6-8355-954d034e24b9 +Openstack-Request-Id: req-5e7d15aa-b621-444c-a30c-4749c45ce63a X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/detail?resource_class=fake {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.45 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/c812a529-29ba-4b68-8e42-90b8958e6631 [{'path': '/description', 'value': 'meow', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-133bfcac-89e6-49a1-bd01-d5fd145699e8 +Openstack-Request-Id: req-c52c2c19-2d61-4e5e-b20f-739f9531c255 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes?traits=CUSTOM_TRAIT_1 {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.51 +{"uuid": "c812a529-29ba-4b68-8e42-90b8958e6631", "created_at": "2024-01-06T15:33:47.298892+00:00", "updated_at": null, "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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": 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/c812a529-29ba-4b68-8e42-90b8958e6631", "rel": "self"}, {"href": "http://localhost/nodes/c812a529-29ba-4b68-8e42-90b8958e6631", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c812a529-29ba-4b68-8e42-90b8958e6631/ports", "rel": "self"}, {"href": "http://localhost/nodes/c812a529-29ba-4b68-8e42-90b8958e6631/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c812a529-29ba-4b68-8e42-90b8958e6631/states", "rel": "self"}, {"href": "http://localhost/nodes/c812a529-29ba-4b68-8e42-90b8958e6631/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c812a529-29ba-4b68-8e42-90b8958e6631/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c812a529-29ba-4b68-8e42-90b8958e6631/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c812a529-29ba-4b68-8e42-90b8958e6631/volume", "rel": "self"}, {"href": "http://localhost/nodes/c812a529-29ba-4b68-8e42-90b8958e6631/volume", "rel": "bookmark"}]} +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_steps ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_soft_ver ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_003_owner_admin_can_post_nodes +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_003_owner_admin_can_post_nodes ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid +ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-851dabc4-66f1-42f4-8b9f-e66d54118984 +Openstack-Request-Id: req-140eda14-4a92-433a-accd-e7bfff662a4b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"} -GET: /v1/nodes/detail?traits=CUSTOM_TRAIT_1 {} -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:46.771811+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-23fa9c56-3207-456f-8fc7-51a97eee0b2f +Openstack-Request-Id: req-140eda14-4a92-433a-accd-e7bfff662a4b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:18.162578+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_configdrive_dict -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_configdrive_dict ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_deleted_chassis -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_deleted_chassis ... ok +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:46.771811+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-683f1792-5d13-441c-93ec-5eb43197869c +Openstack-Request-Id: req-18e69b84-9332-4286-9f43-566093aab98d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "95deba30-c5ea-47f5-80b6-ba014e0adba7", "created_at": "2025-02-07T21:28:17.153767+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/95deba30-c5ea-47f5-80b6-ba014e0adba7", "rel": "self"}, {"href": "http://localhost/nodes/95deba30-c5ea-47f5-80b6-ba014e0adba7", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/95deba30-c5ea-47f5-80b6-ba014e0adba7/ports", "rel": "self"}, {"href": "http://localhost/nodes/95deba30-c5ea-47f5-80b6-ba014e0adba7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/95deba30-c5ea-47f5-80b6-ba014e0adba7/states", "rel": "self"}, {"href": "http://localhost/nodes/95deba30-c5ea-47f5-80b6-ba014e0adba7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/95deba30-c5ea-47f5-80b6-ba014e0adba7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/95deba30-c5ea-47f5-80b6-ba014e0adba7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/95deba30-c5ea-47f5-80b6-ba014e0adba7/volume", "rel": "self"}, {"href": "http://localhost/nodes/95deba30-c5ea-47f5-80b6-ba014e0adba7/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/26a5487c-d70b-4f13-82b7-d398dc7fc558 [{'path': '/description', 'value': 'foo', 'op': 'replace'}, {'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"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": "5c4b661d-6e1b-41f1-8eb2-4bcb07dd1fc9", "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"}]}]} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error ... ok +ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn +ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_009_nodes_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_009_nodes_get_admin ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url ... ok +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_step_invalid_interface +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_step_invalid_interface ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_undocumented_request_zero +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_undocumented_request_zero ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_fast_track +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_fast_track ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps ... ok +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root ... ok +ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error +ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_004_owner_manager_cannot_post_nodes +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_004_owner_manager_cannot_post_nodes ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_invalid_request_two +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_invalid_request_two ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_047_nodes_states_power_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_047_nodes_states_power_put_admin ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-95dd4ff8-9c76-4885-8371-2abd49e19467 +Openstack-Request-Id: req-5b7df6e3-b84a-4aa5-a8b1-f25c71754dfc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "26a5487c-d70b-4f13-82b7-d398dc7fc558", "created_at": "2025-02-07T21:28:17.484544+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/26a5487c-d70b-4f13-82b7-d398dc7fc558", "rel": "self"}, {"href": "http://localhost/nodes/26a5487c-d70b-4f13-82b7-d398dc7fc558", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/26a5487c-d70b-4f13-82b7-d398dc7fc558/ports", "rel": "self"}, {"href": "http://localhost/nodes/26a5487c-d70b-4f13-82b7-d398dc7fc558/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/26a5487c-d70b-4f13-82b7-d398dc7fc558/states", "rel": "self"}, {"href": "http://localhost/nodes/26a5487c-d70b-4f13-82b7-d398dc7fc558/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/26a5487c-d70b-4f13-82b7-d398dc7fc558/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/26a5487c-d70b-4f13-82b7-d398dc7fc558/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/26a5487c-d70b-4f13-82b7-d398dc7fc558/volume", "rel": "self"}, {"href": "http://localhost/nodes/26a5487c-d70b-4f13-82b7-d398dc7fc558/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/6be37cda-7c1e-4d7f-8db7-8547630e9668 [{'path': '/description', 'value': 'foo', 'op': 'replace'}, {'path': '/extra/foo', 'value': 'bar', 'op': 'add'}, {'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_extra_instance_info -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_extra_instance_info ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_instance_info -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_instance_info ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm ... ok -GOT:Response: 201 Created +{"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}"} +PATCH: /v1/deploy_templates/e9bbd827-c5df-440c-af2d-3fc0fdfee432 [{'path': '/steps', 'op': 'replace', 'value': []}] +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-8dedfdf7-27c9-4a44-8d2b-385d9f3bff49 +Openstack-Request-Id: req-37d76738-5abd-4b2f-b886-8c31f1041cb7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:13.582566+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": "ravensay", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "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, "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:13.582566+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': 'ravensay', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'owner': 'catsay', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_system_scope -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_system_scope ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed ... ok -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/36483fda-2f04-4358-98d9-4f906d940f86 [{'path': '/name', 'op': 'replace', 'value': None}] +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-07ab3ba0-811a-4109-a446-d81b01bf4c6a +Openstack-Request-Id: req-4992a860-ff2d-47f1-99cc-43cc50c3a38c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:14.391162+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": "catsay", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "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, "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:14.391162+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': 'catsay', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'protected': True} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: None is not of type 'string'\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/2a8c2ab6-bc32-479c-83d6-99affa07b03c [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-64c75815-99b8-42d6-9719-ebae51c2e0fa +Openstack-Request-Id: req-d6cf5c87-c0ad-40ff-a6a9-0db2a6c5fe81 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes {'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', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.80 +{"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}"} +PATCH: /v1/deploy_templates/e04695b0-4aba-4aeb-89b3-413f49cfc2d9 [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-9fab5878-1601-45a3-82e2-c19e1d8a7518 +Openstack-Request-Id: req-18415f5a-0887-4eca-b44f-d63216d9e58d X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name ... ok -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_no_power_sync_support -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_no_power_sync_support ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_redirect -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_redirect ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:18.294063+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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?fields=extra,instance_info {} -GOT:{'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'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=driver_info {} -GOT:{'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'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:18.878177+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/node.json.json {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -POST: /v1/nodes {'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', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/75c34056-02b3-401d-abbc-4205b73ecaea [{'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-126535fc-9142-4ba0-b570-9e0e4c65f3d3 +Openstack-Request-Id: req-46270cf4-8026-465d-87ef-bf9c17cf5cda X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'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', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['power', 'management', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/55d04379-5f6e-4b46-a565-aa116547e969 [{'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-3b6165d5-f886-4b0f-9efd-e8234707b0e2 +Openstack-Request-Id: req-12e31714-4dd7-4f79-8ae7-438b65a15d77 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'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', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "55d04379-5f6e-4b46-a565-aa116547e969", "created_at": "2024-01-06T15:33:47.250152+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/55d04379-5f6e-4b46-a565-aa116547e969", "rel": "self"}, {"href": "http://localhost/deploy_templates/55d04379-5f6e-4b46-a565-aa116547e969", "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}]} +PATCH: /v1/deploy_templates/f7b5db18-c6b3-46bc-a704-a90ca3a12eaf [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-dbf93924-2979-43e8-9f5f-a3d6b36af9fa +Openstack-Request-Id: req-339ab562-9966-41f6-a330-42e03b087dc7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes {'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', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A deploy template with UUID f7b5db18-c6b3-46bc-a704-a90ca3a12eaf already exists.\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/c8bca384-8235-41df-8221-9e7bf7353656 [{'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-36f71aef-0206-4ea2-9172-ffa789635396 +Openstack-Request-Id: req-02ac2129-5c69-4607-9694-c86b8c05a1bb X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'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', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.80 +{"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: can't replace outside of list\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/41a19c67-9763-4fbe-a6f6-2854a5179403 [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ed639418-d6be-45ca-ae45-c1c50328baeb +Openstack-Request-Id: req-3a018f94-9c29-4732-b396-e7de25ae93c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'resource_class': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['power', 'management', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} +PATCH: /v1/deploy_templates/f1758844-d56e-4f26-aefe-ebf8f9c1a05c [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3ded8785-756d-4a2a-867a-1b103012b195 +Openstack-Request-Id: req-f1cbf9b0-5849-452b-8e06-19d70d84c363 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6be37cda-7c1e-4d7f-8db7-8547630e9668", "created_at": "2025-02-07T21:28:17.764584+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/6be37cda-7c1e-4d7f-8db7-8547630e9668", "rel": "self"}, {"href": "http://localhost/nodes/6be37cda-7c1e-4d7f-8db7-8547630e9668", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6be37cda-7c1e-4d7f-8db7-8547630e9668/ports", "rel": "self"}, {"href": "http://localhost/nodes/6be37cda-7c1e-4d7f-8db7-8547630e9668/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6be37cda-7c1e-4d7f-8db7-8547630e9668/states", "rel": "self"}, {"href": "http://localhost/nodes/6be37cda-7c1e-4d7f-8db7-8547630e9668/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6be37cda-7c1e-4d7f-8db7-8547630e9668/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6be37cda-7c1e-4d7f-8db7-8547630e9668/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6be37cda-7c1e-4d7f-8db7-8547630e9668/volume", "rel": "self"}, {"href": "http://localhost/nodes/6be37cda-7c1e-4d7f-8db7-8547630e9668/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/2a04ede3-9b14-4225-9950-ae285e2ae5df [{'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"uuid": "f1758844-d56e-4f26-aefe-ebf8f9c1a05c", "created_at": "2024-01-06T15:33:50.554827+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f1758844-d56e-4f26-aefe-ebf8f9c1a05c", "rel": "self"}, {"href": "http://localhost/deploy_templates/f1758844-d56e-4f26-aefe-ebf8f9c1a05c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +PATCH: /v1/deploy_templates/70d93cec-9ae4-40d0-97b8-ce510b8b37ce [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_and +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_and ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_priority +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_priority ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok ... ok +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_driver_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_driver_steps ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix_underscore +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix_underscore ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot_hidden_in_lower_version ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_getting_current +ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_getting_current ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_010_nodes_get_other_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_010_nodes_get_other_admin ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_older_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_older_soft_ver ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_step +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_step ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected ... ok +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_2 +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_2 ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_user_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_user_steps ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_soft_ver ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_in_background_task +ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_in_background_task ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_048_nodes_states_power_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_048_nodes_states_power_put_member ... ok +ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults +ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_005_lessee_admin_cannot_post_nodes +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_005_lessee_admin_cannot_post_nodes ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args_kwargs +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args_kwargs ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-20b8f94a-3c1f-4101-9c72-82f8e6a8a722 +Openstack-Request-Id: req-4e32b000-9baa-41e5-ac5d-baf92c3da2db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "2a04ede3-9b14-4225-9950-ae285e2ae5df", "created_at": "2025-02-07T21:28:18.065518+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/2a04ede3-9b14-4225-9950-ae285e2ae5df", "rel": "self"}, {"href": "http://localhost/nodes/2a04ede3-9b14-4225-9950-ae285e2ae5df", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2a04ede3-9b14-4225-9950-ae285e2ae5df/ports", "rel": "self"}, {"href": "http://localhost/nodes/2a04ede3-9b14-4225-9950-ae285e2ae5df/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2a04ede3-9b14-4225-9950-ae285e2ae5df/states", "rel": "self"}, {"href": "http://localhost/nodes/2a04ede3-9b14-4225-9950-ae285e2ae5df/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2a04ede3-9b14-4225-9950-ae285e2ae5df/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2a04ede3-9b14-4225-9950-ae285e2ae5df/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2a04ede3-9b14-4225-9950-ae285e2ae5df/volume", "rel": "self"}, {"href": "http://localhost/nodes/2a04ede3-9b14-4225-9950-ae285e2ae5df/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/72453bcb-0e56-4d21-94c3-d2d37bfbb4d3 [] -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_none -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_none ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_with_ethernet_interfaces -ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_with_ethernet_interfaces ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version ... ok -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data ... ok -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a number' does not match '^[0-9]+$'\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '6cf0e99c-8522-4315-abe2-2e4813a47794', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-74f44e35-2e2d-4dc7-a89d-740244467e5f +Openstack-Request-Id: req-ecb0664d-0fc1-4d11-bfe8-4bf679f98bd5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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": "1a69532e-08e0-4fc3-a2aa-2ebefcdf52aa", "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"}]}]} -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'string'\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '26eddc56-03be-4a46-b5ed-bed2e9ebc967', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-df4008e9-29a8-4f90-a942-4cd2e1d025b1 +Location: http://localhost/v1/deploy_templates/26eddc56-03be-4a46-b5ed-bed2e9ebc967 +Openstack-Request-Id: req-9b849696-3b9c-44c7-b588-56f9e1b496b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:13.481304+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-02-07T21:28:13.487285+00:00", "updated_at": "2025-02-07T21:28:13.495519+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "bef82a48-36e5-4fba-a1d0-8f05db3ff2cf", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "bef82a48-36e5-4fba-a1d0-8f05db3ff2cf", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-02-07T21:28:13.523789+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]} -ACL Test GOT Response: 200 OK +{"uuid": "26eddc56-03be-4a46-b5ed-bed2e9ebc967", "created_at": "2024-01-06T15:33:46.170505+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/26eddc56-03be-4a46-b5ed-bed2e9ebc967", "rel": "self"}, {"href": "http://localhost/deploy_templates/26eddc56-03be-4a46-b5ed-bed2e9ebc967", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +POST: /v1/deploy_templates {'name': 'not-a-trait', 'uuid': 'c18eded7-f99f-4d4c-aebc-e1a948282975', '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-df4008e9-29a8-4f90-a942-4cd2e1d025b1 +Openstack-Request-Id: req-17714bae-1583-40d8-8317-544203d1b893 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:13.481304+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-02-07T21:28:13.487285+00:00", "updated_at": "2025-02-07T21:28:13.495519+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "bef82a48-36e5-4fba-a1d0-8f05db3ff2cf", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "bef82a48-36e5-4fba-a1d0-8f05db3ff2cf", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-02-07T21:28:13.523789+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]}ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_011_nodes_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_011_nodes_detail_get_admin ... ok -GOT:Response: 201 Created +{"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}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '5319c689-b447-4074-b3d2-315ba4c4c2e5', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-6dfef520-d4f6-49dc-b91a-e79b22461a45 +Openstack-Request-Id: req-f2ce90a9-f093-4434-b7e7-bf8845b661bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:16.292739+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", "cpus": "8", "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, "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:16.292739+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': None, 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': 'foo', 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'uuid': '548149ea-6dc4-491f-b584-8a52e3e9b416', '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-926210b6-1a0c-4919-bb69-7ea171696c05 +Openstack-Request-Id: req-6ff58fa3-2830-47fe-8487-d3dca5a1093c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes {'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', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail ... ok -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'name' is a required property\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'f2c72ff9-350a-49ad-87bb-0249924ccb5f', 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-59e57844-593f-4fbf-8a7a-72ead86a3a90 +Openstack-Request-Id: req-935ccd24-f4b7-4695-b53f-d7ccb5ff230b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "72453bcb-0e56-4d21-94c3-d2d37bfbb4d3", "created_at": "2025-02-07T21:28:18.291515+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/72453bcb-0e56-4d21-94c3-d2d37bfbb4d3", "rel": "self"}, {"href": "http://localhost/nodes/72453bcb-0e56-4d21-94c3-d2d37bfbb4d3", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/72453bcb-0e56-4d21-94c3-d2d37bfbb4d3/ports", "rel": "self"}, {"href": "http://localhost/nodes/72453bcb-0e56-4d21-94c3-d2d37bfbb4d3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/72453bcb-0e56-4d21-94c3-d2d37bfbb4d3/states", "rel": "self"}, {"href": "http://localhost/nodes/72453bcb-0e56-4d21-94c3-d2d37bfbb4d3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/72453bcb-0e56-4d21-94c3-d2d37bfbb4d3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/72453bcb-0e56-4d21-94c3-d2d37bfbb4d3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/72453bcb-0e56-4d21-94c3-d2d37bfbb4d3/volume", "rel": "self"}, {"href": "http://localhost/nodes/72453bcb-0e56-4d21-94c3-d2d37bfbb4d3/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/9bb50f13-0b8d-4ade-ad2d-d91fefdef9ff [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'steps' is a required property\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'b0640d15-3bbd-4d83-8b4f-a95863350129', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f9fb9e44-ec6c-4147-9542-df91a48c7dbc +Openstack-Request-Id: req-e36fe7b4-54d8-45ad-b128-70726bcf090f X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/9bb50f13-0b8d-4ade-ad2d-d91fefdef9cc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'args' is a required property\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '4033927d-17f5-475e-9bd2-328651bfbdce', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-cd4e1354-ddef-4636-ba09-ef3eab5973c7 +Openstack-Request-Id: req-2ea1f783-0f26-4673-950f-77986a4db8bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'interface' is a required property\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '86eee61e-70dc-40ec-bbfe-672f2554e839', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b64a56ef-699a-4278-bb51-3e332ce44be8 +Openstack-Request-Id: req-432143b9-a881-490d-ba65-9cfa22184efe X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'value': 'foo', 'op': 'add'}] -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'priority' is a required property\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '677bd01c-b1a7-4af0-a8ba-b3003c3e1ac3', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-cacc0055-61ca-4378-8908-5c7290156ff9 +Openstack-Request-Id: req-c7987f9c-c57b-42ce-b806-45fbba129327 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'add', 'value': 'Windows ME'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'step' is a required property\", \"debuginfo\": null}"} +POST: /v1/deploy_templates {'name': 'HW_CPU_X86_VMX', 'uuid': 'f7b7d900-4b96-4d9d-8589-aa2bba0ff2e8', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_and_driver_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_and_driver_steps ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_undocumented_request_one +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_undocumented_request_one ... ok +GOT:{'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'} +GET: /v1/nodes/2b6b9b60-b0d2-48ad-a94c-ce2cb3c9457a/states {} +GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}, 'boot_mode': 'bios', 'secure_boot': None} +GET: /v1/nodes/c8835d8d-4d11-472a-8243-a4aea06fa980/states {} +GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}, 'boot_mode': 'uefi', 'secure_boot': None} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}, 'boot_mode': None, 'secure_boot': None} +GET: /v1/nodes/eggs/states {} +GOT:{'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'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:48.463568+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:48.463568+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': '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/states {} +GOT:{'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'}} +GET: /v1/nodes/ad543840-0554-486e-9a99-2a5107479942/states {} +GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}, 'boot_mode': 'uefi', 'secure_boot': True} +GET: /v1/nodes/d2c357e3-ee9e-4ff5-9602-b494e046deaf/states {} +GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}, 'boot_mode': 'uefi', 'secure_boot': False} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}, 'boot_mode': None, 'secure_boot': None} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version ... ok +ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning +ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning ... ok +PATCH: /v1/nodes/2fc49712-b703-4b79-b5a9-7bab157970bc [{'path': '/description', 'value': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-4fb409d7-cdd2-4f06-a9f5-501e350925e6 +Openstack-Request-Id: req-734b6cb6-8178-4da3-b36f-67e9b1ac425c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'add', 'value': 'node-0'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] +X-Openstack-Ironic-Api-Version: 1.51 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node with description exceeding 4096 characters\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'value': 'bad-driver', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-22d971ad-6966-4aea-aa3a-9d4fffba6fd3 +Openstack-Request-Id: req-fb6cc9b8-eced-41b6-a745-efc21287f951 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'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-465420ab-6341-4952-921f-da70cbcb19d7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PATCH: /v1/nodes/5775ce33-ba26-4c74-a8df-e8e1f6f81912 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-488f62ab-a994-4d30-9674-6e4fde5a5949 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "5775ce33-ba26-4c74-a8df-e8e1f6f81912", "created_at": "2024-01-06T15:33:51.255866+00:00", "updated_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", "cpus": "8", "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/5775ce33-ba26-4c74-a8df-e8e1f6f81912", "rel": "self"}, {"href": "http://localhost/nodes/5775ce33-ba26-4c74-a8df-e8e1f6f81912", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5775ce33-ba26-4c74-a8df-e8e1f6f81912/ports", "rel": "self"}, {"href": "http://localhost/nodes/5775ce33-ba26-4c74-a8df-e8e1f6f81912/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/d733c711-0ec9-424b-bc13-887443cc0e8c [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_function +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_function ... ok +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2e261be7-8c19-4adc-be5e-c6e091c68897 +Openstack-Request-Id: req-18e69b84-9332-4286-9f43-566093aab98d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +{"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": "5c4b661d-6e1b-41f1-8eb2-4bcb07dd1fc9", "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"}]}]} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fe0b4344-f52d-44f6-bb80-359624343f1d +Openstack-Request-Id: req-1004b0a0-ebf9-4bb4-ad9e-15703f672ab9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 403 Forbidden +{"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": "46fff8f5-d114-43b1-8301-fe0d9fe9a7ca", "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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-826c9650-e0c2-442f-89b7-cb5ad96dd484 +Openstack-Request-Id: req-1004b0a0-ebf9-4bb4-ad9e-15703f672ab9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'op': 'remove'}] -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field ... ok -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_already_present -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_already_present ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_returns_none -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_returns_none ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:19.075883+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': 'node.json', 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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.json {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:19.333964+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/node.json {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:19.576842+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': 'node.json', 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_no_agent_secret -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_no_agent_secret ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_retired_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_retired_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_003_owner_admin_can_post_nodes -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_003_owner_admin_can_post_nodes ... ok - +{"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": "46fff8f5-d114-43b1-8301-fe0d9fe9a7ca", "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"}]}]} API ACL Testing Path get /v1/nodes/detail GET: /v1/nodes/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-71eb8265-6c52-4b54-8abc-9f2035801e70 +Openstack-Request-Id: req-f61e5ec5-9bd5-4050-8b4a-990bc84de1e6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:14.047204+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-02-07T21:28:14.051629+00:00", "updated_at": "2025-02-07T21:28:14.059584+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "b2ecc977-cc37-4d87-8cea-54b43f63e5ad", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "b2ecc977-cc37-4d87-8cea-54b43f63e5ad", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-02-07T21:28:14.088984+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]} +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:51.789374+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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-01-06T15:33:51.795247+00:00", "updated_at": "2024-01-06T15:33:51.800878+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "cefbabfa-dc0d-463d-98f4-39a3a39ba757", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "cefbabfa-dc0d-463d-98f4-39a3a39ba757", "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-01-06T15:33:51.819624+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-71eb8265-6c52-4b54-8abc-9f2035801e70 +Openstack-Request-Id: req-f61e5ec5-9bd5-4050-8b4a-990bc84de1e6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:14.047204+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-02-07T21:28:14.051629+00:00", "updated_at": "2025-02-07T21:28:14.059584+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "b2ecc977-cc37-4d87-8cea-54b43f63e5ad", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "b2ecc977-cc37-4d87-8cea-54b43f63e5ad", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-02-07T21:28:14.088984+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]}ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_012_nodes_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_012_nodes_detail_get_member ... ok -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value ... ok +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:51.789374+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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-01-06T15:33:51.795247+00:00", "updated_at": "2024-01-06T15:33:51.800878+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "cefbabfa-dc0d-463d-98f4-39a3a39ba757", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "cefbabfa-dc0d-463d-98f4-39a3a39ba757", "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-01-06T15:33:51.819624+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]}ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_011_nodes_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_011_nodes_detail_get_admin ... ok +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-d5ab10dd-df65-4f23-950d-eec37f9fa223 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-3a8d608b-ddf7-4807-b139-d4c34d1de337 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'undeploy'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-71bf87e8-fba4-414b-b8fe-7e0af330536d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} +GOT:Response: 204 No Content +Openstack-Request-Id: req-30dd91df-fe42-42c8-bbfb-6f9a2266cd5f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.12 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-63533938-38d5-4dea-815d-a8bc7f452da7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-56432596-4271-4db7-a39e-c7e6962e07a7 +Openstack-Request-Id: req-e8c5a942-c5db-419b-bc41-2c92f3ba2c86 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'op': 'remove'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.12 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"foo\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-3783c3fa-863c-4f60-b9a1-1d4cd106eb62 +Openstack-Request-Id: req-0e57f32d-4e68-4d26-b2c3-74d559a8d4b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.25 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:20.739029+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", "cpus": "8", "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"}]} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.5 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-6d722671-00eb-459f-98cd-fa8332d4e351 +Openstack-Request-Id: req-fd53e558-6f29-4d8c-ab29-349894c48b06 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.24 +X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/last_error', 'op': 'remove'}] +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': None} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-68398eed-2f53-4800-a034-28548a5bfe31 +Openstack-Request-Id: req-706c0b22-a779-4135-a39d-b02b3ba070c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'op': 'remove'}] +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'boo!'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-62539618-2aee-4e9d-a4fa-441688c50181 +Openstack-Request-Id: req-30c0d266-e24e-45cf-a276-1a38fe3e001d X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/non-existent', 'op': 'remove'}] +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': ''} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-3e052b28-b1db-4387-aa1b-bb77cbec25a1 +Openstack-Request-Id: req-090e838f-13bd-46a8-9810-a993e600e83b X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 a non-existent object 'non-existent'\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra', 'op': 'remove'}] -GOT:Response: 200 OK +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': False} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fc19e1d3-1e68-421d-ac0c-c27d9d15475f +Openstack-Request-Id: req-a1223c64-47e1-4365-bdf0-f1a8d5c98776 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:23.476054+00:00", "updated_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", "cpus": "8", "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"}]} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/uuid', 'op': 'remove'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-8bcf4a7b-d653-4e50-9431-31c766b257b1 +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': False} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-04b79501-3280-45c8-963a-15fd7b622f31 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'value': '1', 'op': 'replace'}] -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:19.882451+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'agent_secret_token': '******'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/test.1 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:23.806402+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': 'test.1', 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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?fields=owner {} -GOT:{'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'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=protected {} -GOT:{'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'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=retired {} -GOT:{'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'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} -GOT:{'storage_interface': None, '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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-93609576-1403-49bb-be36-5af86e69f2d3 +X-Openstack-Ironic-Api-Version: 1.76 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 0} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-074fffbe-bde2-4073-8b61-47d1a36cc466 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} -GOT:{'supported_boot_devices': ['pxe']} -GET: /v1/nodes/spam/management/boot_device/supported {} -GOT:{'supported_boot_devices': ['pxe']} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} +X-Openstack-Ironic-Api-Version: 1.76 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 2} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-57c065e8-8286-4291-b84d-490fa07b20aa +Openstack-Request-Id: req-def7a263-936c-48c8-b003-562e53a64cbc X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} -GOT:{'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'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_iface_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_iface_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_versioning -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_versioning ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step ... ok -GOT:Response: 400 Bad Request +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': True} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1e93e15d-6fa8-45aa-bc27-7c1115ab8632 +Openstack-Request-Id: req-60b25405-3f8f-4041-a6ab-8e511e173b46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} -GOT:{'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'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} -GOT:{'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'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-45e0c681-25e3-4d86-a285-e74e7244c3f6 +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': True} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-3c4b1c15-bae7-40af-a838-c982da8726e3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=allocation_uuid {} -GOT:{'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': '48d80734-daeb-4b3b-8ca8-a8582e697a4f'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:28.127898+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}]} +X-Openstack-Ironic-Api-Version: 1.76 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 1} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-3db1a5e0-fcb1-4993-a0b4-1a851a5765c5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.76 + +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_existing +ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_existing ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:51.525421+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:28.127898+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}]} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:51.525421+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:28.358625+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:51.986803+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_without_ethernet_interfaces -ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_without_ethernet_interfaces ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success ... ok -GOT:Response: 400 Bad Request +ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros +ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_kwargs +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_kwargs ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2dbc2881-2cd6-4d6a-aa48-8bd2f00c8820 +Openstack-Request-Id: req-406b4036-dcff-4e4d-96db-7e0c46b76698 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'replace'}] +{"uuid": "d733c711-0ec9-424b-bc13-887443cc0e8c", "created_at": "2024-01-06T15:33:51.597456+00:00", "updated_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", "cpus": "8", "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/d733c711-0ec9-424b-bc13-887443cc0e8c", "rel": "self"}, {"href": "http://localhost/nodes/d733c711-0ec9-424b-bc13-887443cc0e8c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d733c711-0ec9-424b-bc13-887443cc0e8c/ports", "rel": "self"}, {"href": "http://localhost/nodes/d733c711-0ec9-424b-bc13-887443cc0e8c/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/ad29c643-455d-435b-bed1-bfa2eeed63ad [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-107f178b-0e42-4a2e-bc20-4399f9606d5a +Openstack-Request-Id: req-418570fd-5b6a-4338-a17c-d73c1ff49368 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:25.800257+00:00", "updated_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", "cpus": "8", "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"}]} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/console_enabled', 'op': 'replace', 'value': True}] -GOT:Response: 400 Bad Request +{"uuid": "ad29c643-455d-435b-bed1-bfa2eeed63ad", "created_at": "2024-01-06T15:33:51.721309+00:00", "updated_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", "cpus": "8", "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/ad29c643-455d-435b-bed1-bfa2eeed63ad", "rel": "self"}, {"href": "http://localhost/nodes/ad29c643-455d-435b-bed1-bfa2eeed63ad", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ad29c643-455d-435b-bed1-bfa2eeed63ad/ports", "rel": "self"}, {"href": "http://localhost/nodes/ad29c643-455d-435b-bed1-bfa2eeed63ad/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/4032d470-9913-4615-86ac-96386f242676 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-69ae9818-1be5-4991-9459-b8c9f77e11d5 +Openstack-Request-Id: req-dba1fb2c-52b8-49ce-92de-a49984f1e873 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/power_state', 'op': 'replace', 'value': 'fake-state'}] -GOT:Response: 400 Bad Request +{"uuid": "4032d470-9913-4615-86ac-96386f242676", "created_at": "2024-01-06T15:33:51.830151+00:00", "updated_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", "cpus": "8", "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/4032d470-9913-4615-86ac-96386f242676", "rel": "self"}, {"href": "http://localhost/nodes/4032d470-9913-4615-86ac-96386f242676", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4032d470-9913-4615-86ac-96386f242676/ports", "rel": "self"}, {"href": "http://localhost/nodes/4032d470-9913-4615-86ac-96386f242676/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/41bca8c0-614f-49f0-bad5-76e51fe6474a [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-576ee3f8-193f-4d1f-bd87-edc4ecb54195 +Openstack-Request-Id: req-21a556c7-7f0e-468e-8e25-4be85e05076b X-Openstack-Ironic-Api-Maximum-Version: 1.80 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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/maintenance', 'op': 'replace', 'value': True}] +{"uuid": "41bca8c0-614f-49f0-bad5-76e51fe6474a", "created_at": "2024-01-06T15:33:51.955340+00:00", "updated_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", "cpus": "8", "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/41bca8c0-614f-49f0-bad5-76e51fe6474a", "rel": "self"}, {"href": "http://localhost/nodes/41bca8c0-614f-49f0-bad5-76e51fe6474a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/41bca8c0-614f-49f0-bad5-76e51fe6474a/ports", "rel": "self"}, {"href": "http://localhost/nodes/41bca8c0-614f-49f0-bad5-76e51fe6474a/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/5a205ad5-8f27-4fb5-b693-df1499accb5f [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-56cb51d2-c371-4e9f-a044-8a916c37f05f +Openstack-Request-Id: req-f4397dff-5199-47b7-a302-9b9d1093ed5f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:26.378726+00:00", "updated_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", "cpus": "8", "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"}]} -PATCH: /v1/nodes/node-57.1 [{'path': '/maintenance', 'op': 'replace', 'value': True}] -GOT:Response: 200 OK +{"uuid": "5a205ad5-8f27-4fb5-b693-df1499accb5f", "created_at": "2024-01-06T15:33:52.073803+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "error", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "available", "links": [{"href": "http://localhost/v1/nodes/5a205ad5-8f27-4fb5-b693-df1499accb5f", "rel": "self"}, {"href": "http://localhost/nodes/5a205ad5-8f27-4fb5-b693-df1499accb5f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5a205ad5-8f27-4fb5-b693-df1499accb5f/ports", "rel": "self"}, {"href": "http://localhost/nodes/5a205ad5-8f27-4fb5-b693-df1499accb5f/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/8f1f038a-7dee-4560-b299-a6025b31ea1d [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version ... ok +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0d3baeee-1734-4e73-a351-199fad00ad00 +Openstack-Request-Id: req-d9e31865-f80c-466e-bd95-2f837a62cc97 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:26.745097+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", "cpus": "8", "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"}]} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa', 'op': 'replace'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ca70a530-15d5-40e4-a145-a69e8d43c122 +Openstack-Request-Id: req-689a873f-06d7-4ad8-98e4-f5aec8ebccec X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/provision_updated_at', 'op': 'replace', 'value': '2000-01-01 00:00:00'}] -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:28.358625+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': 'useful piece', 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:29.315116+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:29.315116+00:00', 'updated_at': None, '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': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:29.538095+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:29.538095+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': '2015-03-18T19:20:00+00:00', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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/detail {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers ... ok - -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4ef71999-7877-4b8c-b413-c3f9ce41aef2 +Openstack-Request-Id: req-cca82828-a44e-4a5c-a8fc-f18f7991982d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:22.478868+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-02-07T21:28:22.483809+00:00", "updated_at": "2025-02-07T21:28:22.491053+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "21a1bead-261d-4cc3-b829-3683af461475", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "21a1bead-261d-4cc3-b829-3683af461475", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-02-07T21:28:22.514090+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4ef71999-7877-4b8c-b413-c3f9ce41aef2 +Openstack-Request-Id: req-1ad51885-3026-46e8-bd01-85e71144876e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:22.478868+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-02-07T21:28:22.483809+00:00", "updated_at": "2025-02-07T21:28:22.491053+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "21a1bead-261d-4cc3-b829-3683af461475", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "21a1bead-261d-4cc3-b829-3683af461475", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-02-07T21:28:22.514090+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]}ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_013_nodes_detail_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_013_nodes_detail_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_014_nodes_node_ident_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_014_nodes_node_ident_get_admin ... ok -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_047_nodes_states_power_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_047_nodes_states_power_put_admin ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail ... ok -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-02bbba56-4a02-4a35-91eb-f80ce93314b4 +Openstack-Request-Id: req-25ce9ab1-a652-4344-87d4-ba0479c5950b X-Openstack-Ironic-Api-Maximum-Version: 1.80 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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623 [{'path': '/boot_interface', 'op': 'remove'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-34d8ca39-766d-4e62-9be5-cb463de15c86 +Openstack-Request-Id: req-fdf642bf-105a-4a46-bd93-0365a117585e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "420ff1ad-e8ce-4214-b024-8d60f55fb623", "created_at": "2025-02-07T21:28:30.852862+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623 [{'path': '/console_interface', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f385f6e3-c44c-4ab7-82c2-b6eb0b1f9ca5 +Openstack-Request-Id: req-34135825-0bc2-4315-a00a-98993f06d7c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "420ff1ad-e8ce-4214-b024-8d60f55fb623", "created_at": "2025-02-07T21:28:30.852862+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623 [{'path': '/deploy_interface', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6c290755-5430-4cd6-9562-40bb52f42942 +Openstack-Request-Id: req-265bdc9f-d2a6-40b0-a016-7faf36bad884 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "420ff1ad-e8ce-4214-b024-8d60f55fb623", "created_at": "2025-02-07T21:28:30.852862+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623 [{'path': '/inspect_interface', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-805f0cc4-2390-4eb7-8fe6-87cdf82e7d23 +Openstack-Request-Id: req-aa1b9cd3-bae5-45d4-96db-28ec92ced097 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "420ff1ad-e8ce-4214-b024-8d60f55fb623", "created_at": "2025-02-07T21:28:30.852862+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623 [{'path': '/management_interface', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-182960c3-7c96-47fe-960d-515c5bc9c842 +Openstack-Request-Id: req-a3af729e-1f08-475d-9fc9-aedbd5034356 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "420ff1ad-e8ce-4214-b024-8d60f55fb623", "created_at": "2025-02-07T21:28:30.852862+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623 [{'path': '/power_interface', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-28595cf0-ebfd-44f1-8ea6-da5fa43c809d +Openstack-Request-Id: req-fc8f3ab1-8b8d-4fa9-b0fd-31423bbb1dba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "420ff1ad-e8ce-4214-b024-8d60f55fb623", "created_at": "2025-02-07T21:28:30.852862+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623 [{'path': '/raid_interface', 'op': 'remove'}] -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields ... ok -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_empty -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_empty ... ok -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-4cac8774-4e32-4038-b89e-8371ca97209a +Openstack-Request-Id: req-62690c6e-7bdf-4a33-9219-aa78a41867c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:22.351287+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", "cpus": "8", "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:22.351287+00:00', 'updated_at': None, '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': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, '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'}]} -POST: /v1/nodes {'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', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9ec3cce1-ac65-43ef-8f99-3f8d8feb0933 +Openstack-Request-Id: req-04027a60-35c9-480f-ab86-048e98c85bf2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes {'uuid': 'b2680e40-a175-4d26-8851-7895155817c5', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/nodes/b2680e40-a175-4d26-8851-7895155817c5 -Openstack-Request-Id: req-24fa2112-fc60-4414-9794-55a5b7ca9aaa +Openstack-Request-Id: req-1566f2c7-b77e-4e0b-ac1b-a2a23766964a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "b2680e40-a175-4d26-8851-7895155817c5", "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", "cpus": "8", "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/b2680e40-a175-4d26-8851-7895155817c5", "rel": "self"}, {"href": "http://localhost/nodes/b2680e40-a175-4d26-8851-7895155817c5", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/b2680e40-a175-4d26-8851-7895155817c5/ports", "rel": "self"}, {"href": "http://localhost/nodes/b2680e40-a175-4d26-8851-7895155817c5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b2680e40-a175-4d26-8851-7895155817c5/states", "rel": "self"}, {"href": "http://localhost/nodes/b2680e40-a175-4d26-8851-7895155817c5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b2680e40-a175-4d26-8851-7895155817c5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b2680e40-a175-4d26-8851-7895155817c5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b2680e40-a175-4d26-8851-7895155817c5/volume", "rel": "self"}, {"href": "http://localhost/nodes/b2680e40-a175-4d26-8851-7895155817c5/volume", "rel": "bookmark"}]} -GET: /v1/nodes/b2680e40-a175-4d26-8851-7895155817c5 {} -GOT:{'uuid': 'b2680e40-a175-4d26-8851-7895155817c5', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/b2680e40-a175-4d26-8851-7895155817c5', 'rel': 'self'}, {'href': 'http://localhost/nodes/b2680e40-a175-4d26-8851-7895155817c5', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/b2680e40-a175-4d26-8851-7895155817c5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b2680e40-a175-4d26-8851-7895155817c5/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b2680e40-a175-4d26-8851-7895155817c5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b2680e40-a175-4d26-8851-7895155817c5/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b2680e40-a175-4d26-8851-7895155817c5/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b2680e40-a175-4d26-8851-7895155817c5/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b2680e40-a175-4d26-8851-7895155817c5/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b2680e40-a175-4d26-8851-7895155817c5/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '2a19c8f4-d376-4bb1-85d9-0b6da1f754ab', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers ... ok +ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros +ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_049_nodes_states_power_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_049_nodes_states_power_put_observer ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_006_lessee_admin_can_post_nodes +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_006_lessee_admin_can_post_nodes ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_node_already_locked +ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_node_already_locked ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_template_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_template_steps ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mac_address +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mac_address ... ok +ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary +ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_012_nodes_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_012_nodes_detail_get_member ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_do_node_deploy_steps +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_do_node_deploy_steps ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported ... ok +ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id +ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id ... ok +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab -Openstack-Request-Id: req-d2247dc2-2875-41dd-9018-f87fb89d6993 +Openstack-Request-Id: req-18e45e56-4d41-443e-abb8-fa6661776838 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "2a19c8f4-d376-4bb1-85d9-0b6da1f754ab", "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", "cpus": "8", "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/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab", "rel": "self"}, {"href": "http://localhost/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/ports", "rel": "self"}, {"href": "http://localhost/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/states", "rel": "self"}, {"href": "http://localhost/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/volume", "rel": "self"}, {"href": "http://localhost/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/volume", "rel": "bookmark"}]} -GET: /v1/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab {} -GOT:{'uuid': '2a19c8f4-d376-4bb1-85d9-0b6da1f754ab', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab', 'rel': 'self'}, {'href': 'http://localhost/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/2a19c8f4-d376-4bb1-85d9-0b6da1f754ab/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '4b304f57-c9f8-4673-9f85-8cd31f52d530', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "8f1f038a-7dee-4560-b299-a6025b31ea1d", "created_at": "2024-01-06T15:33:52.261195+00:00", "updated_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", "cpus": "8", "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/8f1f038a-7dee-4560-b299-a6025b31ea1d", "rel": "self"}, {"href": "http://localhost/nodes/8f1f038a-7dee-4560-b299-a6025b31ea1d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8f1f038a-7dee-4560-b299-a6025b31ea1d/ports", "rel": "self"}, {"href": "http://localhost/nodes/8f1f038a-7dee-4560-b299-a6025b31ea1d/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/6a0b71f5-c4fd-4d2f-af40-4bb1379e7bcc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530 -Openstack-Request-Id: req-dc385c51-3ba7-40ef-9aa4-c3351f17271c +Openstack-Request-Id: req-b73aa5f6-f9bf-401d-a227-51e93dd7f573 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "4b304f57-c9f8-4673-9f85-8cd31f52d530", "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", "cpus": "8", "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/4b304f57-c9f8-4673-9f85-8cd31f52d530", "rel": "self"}, {"href": "http://localhost/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/ports", "rel": "self"}, {"href": "http://localhost/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/states", "rel": "self"}, {"href": "http://localhost/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/volume", "rel": "self"}, {"href": "http://localhost/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/volume", "rel": "bookmark"}]} -GET: /v1/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530 {} -GOT:{'uuid': '4b304f57-c9f8-4673-9f85-8cd31f52d530', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530', 'rel': 'self'}, {'href': 'http://localhost/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/4b304f57-c9f8-4673-9f85-8cd31f52d530/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '61f6c57c-2662-49bb-ba96-a645f2d8a2d8', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "6a0b71f5-c4fd-4d2f-af40-4bb1379e7bcc", "created_at": "2024-01-06T15:33:52.401776+00:00", "updated_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", "cpus": "8", "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/6a0b71f5-c4fd-4d2f-af40-4bb1379e7bcc", "rel": "self"}, {"href": "http://localhost/nodes/6a0b71f5-c4fd-4d2f-af40-4bb1379e7bcc", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6a0b71f5-c4fd-4d2f-af40-4bb1379e7bcc/ports", "rel": "self"}, {"href": "http://localhost/nodes/6a0b71f5-c4fd-4d2f-af40-4bb1379e7bcc/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/8933fdbc-07f3-4de4-938b-409824c0aa5b [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8 -Openstack-Request-Id: req-5816ed16-833e-47fb-b6fe-a228036b2921 +Openstack-Request-Id: req-993fbf08-c1fb-4fe0-9088-9e27b3c7e14f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "61f6c57c-2662-49bb-ba96-a645f2d8a2d8", "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", "cpus": "8", "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/61f6c57c-2662-49bb-ba96-a645f2d8a2d8", "rel": "self"}, {"href": "http://localhost/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/ports", "rel": "self"}, {"href": "http://localhost/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/states", "rel": "self"}, {"href": "http://localhost/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/volume", "rel": "self"}, {"href": "http://localhost/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/volume", "rel": "bookmark"}]} -GET: /v1/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8 {} -GOT:{'uuid': '61f6c57c-2662-49bb-ba96-a645f2d8a2d8', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8', 'rel': 'self'}, {'href': 'http://localhost/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/61f6c57c-2662-49bb-ba96-a645f2d8a2d8/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': 'db70bdc1-f7ff-4e2a-9218-87b0493ce5ea', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "8933fdbc-07f3-4de4-938b-409824c0aa5b", "created_at": "2024-01-06T15:33:52.499304+00:00", "updated_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", "cpus": "8", "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/8933fdbc-07f3-4de4-938b-409824c0aa5b", "rel": "self"}, {"href": "http://localhost/nodes/8933fdbc-07f3-4de4-938b-409824c0aa5b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8933fdbc-07f3-4de4-938b-409824c0aa5b/ports", "rel": "self"}, {"href": "http://localhost/nodes/8933fdbc-07f3-4de4-938b-409824c0aa5b/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/c831bc0c-a79b-4d8e-884f-39f8b93f1cdc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea -Openstack-Request-Id: req-cc093204-662e-43e1-aa4f-e6760e2f9f4d +Openstack-Request-Id: req-65a214ab-0fd4-4825-8489-eab779d9f7d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "db70bdc1-f7ff-4e2a-9218-87b0493ce5ea", "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", "cpus": "8", "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/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea", "rel": "self"}, {"href": "http://localhost/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/ports", "rel": "self"}, {"href": "http://localhost/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/states", "rel": "self"}, {"href": "http://localhost/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/volume", "rel": "self"}, {"href": "http://localhost/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/volume", "rel": "bookmark"}]} -GET: /v1/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea {} -GOT:{'uuid': 'db70bdc1-f7ff-4e2a-9218-87b0493ce5ea', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea', 'rel': 'self'}, {'href': 'http://localhost/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/db70bdc1-f7ff-4e2a-9218-87b0493ce5ea/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '04c8ccd7-3c63-4a13-bcd0-161054842608', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "c831bc0c-a79b-4d8e-884f-39f8b93f1cdc", "created_at": "2024-01-06T15:33:52.633245+00:00", "updated_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", "cpus": "8", "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/c831bc0c-a79b-4d8e-884f-39f8b93f1cdc", "rel": "self"}, {"href": "http://localhost/nodes/c831bc0c-a79b-4d8e-884f-39f8b93f1cdc", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c831bc0c-a79b-4d8e-884f-39f8b93f1cdc/ports", "rel": "self"}, {"href": "http://localhost/nodes/c831bc0c-a79b-4d8e-884f-39f8b93f1cdc/ports", "rel": "bookmark"}]} +PATCH: /v1/nodes/e0fa3d8d-4ccb-4cb4-aac9-c1be70f1df4e [{'path': '/instance_uuid', 'op': 'remove'}] +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_skip_missing +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_skip_missing ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_valid +ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_valid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one_field_specific_santization +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one_field_specific_santization ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_custom_fields +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_custom_fields ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_connerror +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_connerror ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_050_nodes_states_boot_mode_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_050_nodes_states_boot_mode_put_admin ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed ... ok +ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached +ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_007_lessee_manager_cannot_post_nodes +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_007_lessee_manager_cannot_post_nodes ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_ioerror +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_ioerror ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_template_and_driver_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_template_and_driver_steps ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit ... ok +ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available +ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_validate_fail +ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_validate_fail ... ok +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_ioerror +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_ioerror ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or ... ok + +API ACL Testing Path get /v1/nodes/detail +GET: /v1/nodes/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608 -Openstack-Request-Id: req-5d48e725-3ea0-4631-be45-1210b36980b2 +Openstack-Request-Id: req-65745875-af9a-46a7-89a9-1531a89322fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "04c8ccd7-3c63-4a13-bcd0-161054842608", "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", "cpus": "8", "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/04c8ccd7-3c63-4a13-bcd0-161054842608", "rel": "self"}, {"href": "http://localhost/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/ports", "rel": "self"}, {"href": "http://localhost/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/states", "rel": "self"}, {"href": "http://localhost/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/volume", "rel": "self"}, {"href": "http://localhost/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/volume", "rel": "bookmark"}]} -GET: /v1/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608 {} -GOT:{'uuid': '04c8ccd7-3c63-4a13-bcd0-161054842608', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608', 'rel': 'self'}, {'href': 'http://localhost/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/04c8ccd7-3c63-4a13-bcd0-161054842608/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '1ed2ae2c-7d25-4144-a2af-14a8a9bab26f', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f -Openstack-Request-Id: req-377bd7fb-3b9c-4eac-9037-0b1814e33511 +Openstack-Request-Id: req-65745875-af9a-46a7-89a9-1531a89322fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "1ed2ae2c-7d25-4144-a2af-14a8a9bab26f", "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", "cpus": "8", "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/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f", "rel": "self"}, {"href": "http://localhost/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/ports", "rel": "self"}, {"href": "http://localhost/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/states", "rel": "self"}, {"href": "http://localhost/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/volume", "rel": "self"}, {"href": "http://localhost/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/volume", "rel": "bookmark"}]} -GET: /v1/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f {} -GOT:{'uuid': '1ed2ae2c-7d25-4144-a2af-14a8a9bab26f', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ed2ae2c-7d25-4144-a2af-14a8a9bab26f/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/detail +GET: /v1/nodes/detail {} +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e -Openstack-Request-Id: req-b326a20a-b667-42d1-8eae-9c1552e68fd4 +Openstack-Request-Id: req-f9ee7745-ee0d-4c47-8066-ff8cdc30c9d1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e", "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", "cpus": "8", "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/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e", "rel": "self"}, {"href": "http://localhost/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/ports", "rel": "self"}, {"href": "http://localhost/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/states", "rel": "self"}, {"href": "http://localhost/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/volume", "rel": "self"}, {"href": "http://localhost/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/volume", "rel": "bookmark"}]} -GET: /v1/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e {} -GOT:{'uuid': '4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e', 'rel': 'self'}, {'href': 'http://localhost/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/4e9b5e27-2996-4c2c-8c0a-ee76e0ac072e/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '849a6c0b-53bc-40a7-9293-09194ade8dbf', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:53.497169+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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-01-06T15:33:53.506702+00:00", "updated_at": "2024-01-06T15:33:53.512432+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "29549213-719f-4449-999c-ed128d77fc01", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "29549213-719f-4449-999c-ed128d77fc01", "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-01-06T15:33:53.530047+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf -Openstack-Request-Id: req-51697f25-641a-4220-835e-7b8a1f8c0a27 +Openstack-Request-Id: req-f9ee7745-ee0d-4c47-8066-ff8cdc30c9d1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "849a6c0b-53bc-40a7-9293-09194ade8dbf", "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", "cpus": "8", "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/849a6c0b-53bc-40a7-9293-09194ade8dbf", "rel": "self"}, {"href": "http://localhost/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/ports", "rel": "self"}, {"href": "http://localhost/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/states", "rel": "self"}, {"href": "http://localhost/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/volume", "rel": "self"}, {"href": "http://localhost/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/volume", "rel": "bookmark"}]} -GET: /v1/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf {} -GOT:{'uuid': '849a6c0b-53bc-40a7-9293-09194ade8dbf', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf', 'rel': 'self'}, {'href': 'http://localhost/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/849a6c0b-53bc-40a7-9293-09194ade8dbf/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': 'fe480102-d8c3-4f11-91c5-7e0b50e7275e', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:53.497169+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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-01-06T15:33:53.506702+00:00", "updated_at": "2024-01-06T15:33:53.512432+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "29549213-719f-4449-999c-ed128d77fc01", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "29549213-719f-4449-999c-ed128d77fc01", "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-01-06T15:33:53.530047+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]}ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_013_nodes_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_013_nodes_detail_get_observer ... ok +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_event_missing_madatory_field +ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_event_missing_madatory_field ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_records_lessee +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_records_lessee ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_oserror +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_oserror ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name ... ok +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_051_nodes_states_boot_mode_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_051_nodes_states_boot_mode_put_member ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_event_type +ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_event_type ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_worker_pool_full +ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_worker_pool_full ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_custom_timeout +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_custom_timeout ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string_list +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string_list ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single ... ok +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_template_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_template_steps ... ok +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e -Openstack-Request-Id: req-ff30cc3c-ef18-47b9-9fde-320c7665453c +Openstack-Request-Id: req-118968cb-605c-4358-a548-90f2cc97e47b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "fe480102-d8c3-4f11-91c5-7e0b50e7275e", "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", "cpus": "8", "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/fe480102-d8c3-4f11-91c5-7e0b50e7275e", "rel": "self"}, {"href": "http://localhost/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/ports", "rel": "self"}, {"href": "http://localhost/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/states", "rel": "self"}, {"href": "http://localhost/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/volume", "rel": "self"}, {"href": "http://localhost/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/volume", "rel": "bookmark"}]} -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_explicit -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_explicit ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner_no_match -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner_no_match ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported ... ok -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:29.741442+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': '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 {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:29.741442+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:32.906449+00:00', 'updated_at': None, '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': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:32.906449+00:00', 'updated_at': None, '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': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': 'fish', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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/detail {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:34.860142+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': '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 {} -ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_BIOS_boot_mode -ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_BIOS_boot_mode ... ok -GET: /v1/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e {} -GOT:{'uuid': 'fe480102-d8c3-4f11-91c5-7e0b50e7275e', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe480102-d8c3-4f11-91c5-7e0b50e7275e/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '64f0385e-2643-45f4-95e6-797b238e3cbf', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.38 +{"uuid": "e0fa3d8d-4ccb-4cb4-aac9-c1be70f1df4e", "created_at": "2024-01-06T15:33:53.015488+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", "cpus": "8", "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/e0fa3d8d-4ccb-4cb4-aac9-c1be70f1df4e", "rel": "self"}, {"href": "http://localhost/nodes/e0fa3d8d-4ccb-4cb4-aac9-c1be70f1df4e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e0fa3d8d-4ccb-4cb4-aac9-c1be70f1df4e/ports", "rel": "self"}, {"href": "http://localhost/nodes/e0fa3d8d-4ccb-4cb4-aac9-c1be70f1df4e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e0fa3d8d-4ccb-4cb4-aac9-c1be70f1df4e/states", "rel": "self"}, {"href": "http://localhost/nodes/e0fa3d8d-4ccb-4cb4-aac9-c1be70f1df4e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e0fa3d8d-4ccb-4cb4-aac9-c1be70f1df4e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e0fa3d8d-4ccb-4cb4-aac9-c1be70f1df4e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e0fa3d8d-4ccb-4cb4-aac9-c1be70f1df4e/volume", "rel": "self"}, {"href": "http://localhost/nodes/e0fa3d8d-4ccb-4cb4-aac9-c1be70f1df4e/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/2ea8d0b3-1a69-4b7f-9e33-48b8498f71c2 [{'path': '/instance_uuid', 'op': 'remove'}] +GOT:Response: 409 Conflict Content-Type: application/json -Location: http://localhost/v1/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf -Openstack-Request-Id: req-571332f7-bfc4-4d74-bc26-0b7b60be2d23 +Openstack-Request-Id: req-76110f96-a4a3-4b74-908a-af27f834bc95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "64f0385e-2643-45f4-95e6-797b238e3cbf", "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", "cpus": "8", "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/64f0385e-2643-45f4-95e6-797b238e3cbf", "rel": "self"}, {"href": "http://localhost/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/ports", "rel": "self"}, {"href": "http://localhost/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/states", "rel": "self"}, {"href": "http://localhost/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/volume", "rel": "self"}, {"href": "http://localhost/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/volume", "rel": "bookmark"}]} -GET: /v1/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf {} -GOT:{'uuid': '64f0385e-2643-45f4-95e6-797b238e3cbf', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf', 'rel': 'self'}, {'href': 'http://localhost/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/64f0385e-2643-45f4-95e6-797b238e3cbf/volume', 'rel': 'bookmark'}]} -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src ... ok -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify ... ok -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_failed -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_failed ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_network_error_fail -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_network_error_fail ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_004_owner_manager_cannot_post_nodes -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_004_owner_manager_cannot_post_nodes ... ok - -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +X-Openstack-Ironic-Api-Version: 1.39 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"2ea8d0b3-1a69-4b7f-9e33-48b8498f71c2\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} +PATCH: /v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ad19199a-250d-4db8-9fa0-d6a95e746623 +Openstack-Request-Id: req-8873c657-2695-4a24-8268-11b5682a48cf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:32.560456+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -ACL Test GOT Response: 200 OK +{"uuid": "3337c9c3-960b-4dc5-a412-f7a996394ee4", "created_at": "2024-01-06T15:33:53.913898+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] +ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_mac_network_port_event +ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_mac_network_port_event ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_unexpected_args +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_unexpected_args ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_008_lessee_manager_can_post_nodes +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_008_lessee_manager_can_post_nodes ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_http_scheme +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_http_scheme ... ok +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ad19199a-250d-4db8-9fa0-d6a95e746623 +Openstack-Request-Id: req-73878258-33fe-4115-ae7d-8a6040688219 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:32.560456+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_015_nodes_node_ident_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_015_nodes_node_ident_get_member ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project_no_match -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project_no_match ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_048_nodes_states_power_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_048_nodes_states_power_put_member ... ok -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_UEFI_boot_mode -ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_UEFI_boot_mode ... ok -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok ... ok -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image_with_type -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image_with_type ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions ... ok -POST: /v1/nodes {'uuid': 'e634c69d-2a6a-4a17-b849-ddb8b879a4aa', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'bios_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +{"uuid": "3337c9c3-960b-4dc5-a412-f7a996394ee4", "created_at": "2024-01-06T15:33:53.913898+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-74bf01d8-381e-4868-a7a8-1e53cf0f0ad7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "3337c9c3-960b-4dc5-a412-f7a996394ee4", "created_at": "2024-01-06T15:33:53.913898+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_missing_mandatory_fields_network_port_event +ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_missing_mandatory_fields_network_port_event ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_014_nodes_node_ident_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_014_nodes_node_ident_get_admin ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request ... ok +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service ... ok +ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_simple_event_type +ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_simple_event_type ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_052_nodes_states_boot_mode_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_052_nodes_states_boot_mode_put_observer ... ok +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path_none +ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path_none ... ok +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid_or_name +ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid_or_name ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-b441ada9-ccc6-4ab1-abd0-5c20b008369c +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "3337c9c3-960b-4dc5-a412-f7a996394ee4", "created_at": "2024-01-06T15:33:53.913898+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-98662c84-e37a-4460-a5b7-51fcaf3154c3 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "3337c9c3-960b-4dc5-a412-f7a996394ee4", "created_at": "2024-01-06T15:33:53.913898+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4 [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa -Openstack-Request-Id: req-72d730ff-86ca-4b96-9e86-f7f2cc50c240 +Location: http://localhost/v1/deploy_templates/f7b7d900-4b96-4d9d-8589-aa2bba0ff2e8 +Openstack-Request-Id: req-fcc6990a-0e4c-4296-a307-10e36cf0e374 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "e634c69d-2a6a-4a17-b849-ddb8b879a4aa", "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", "cpus": "8", "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/e634c69d-2a6a-4a17-b849-ddb8b879a4aa", "rel": "self"}, {"href": "http://localhost/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/ports", "rel": "self"}, {"href": "http://localhost/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/states", "rel": "self"}, {"href": "http://localhost/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/volume", "rel": "self"}, {"href": "http://localhost/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/volume", "rel": "bookmark"}]} -GET: /v1/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa {} -GOT:{'uuid': 'e634c69d-2a6a-4a17-b849-ddb8b879a4aa', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_interface': 'flat', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa', 'rel': 'self'}, {'href': 'http://localhost/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e634c69d-2a6a-4a17-b849-ddb8b879a4aa/volume', 'rel': 'bookmark'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "f7b7d900-4b96-4d9d-8589-aa2bba0ff2e8", "created_at": "2024-01-06T15:33:51.680222+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f7b7d900-4b96-4d9d-8589-aa2bba0ff2e8", "rel": "self"}, {"href": "http://localhost/deploy_templates/f7b7d900-4b96-4d9d-8589-aa2bba0ff2e8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'eb2e7249-097e-424e-96e6-c4ab3376546f', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': '42'}], 'extra': {}} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-8634bf97-5f37-4bb9-bde8-5fe2d60847bd +Location: http://localhost/v1/deploy_templates/eb2e7249-097e-424e-96e6-c4ab3376546f +Openstack-Request-Id: req-6c6cb44b-168e-4bb9-977d-4177ca7d8992 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "eb2e7249-097e-424e-96e6-c4ab3376546f", "created_at": "2024-01-06T15:33:51.979365+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/eb2e7249-097e-424e-96e6-c4ab3376546f", "rel": "self"}, {"href": "http://localhost/deploy_templates/eb2e7249-097e-424e-96e6-c4ab3376546f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": "42"}]} +POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'a37dca40-1c53-4521-b81f-490c83784044', '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-8a92618f-4dd7-4787-897b-eb0cc8259898 +Openstack-Request-Id: req-222a1a84-0966-4fd8-b9c6-a1f01f81b260 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'deploy_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_unsupported -ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_unsupported ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " +X-Openstack-Ironic-Api-Version: 1.80 +{"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}"} +GET: /v1/portgroups/?limit=3 {} +GOT:{'portgroups': [{'uuid': 'dd3d2982-1949-4f31-80fb-a41ea45cb85a', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/dd3d2982-1949-4f31-80fb-a41ea45cb85a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/dd3d2982-1949-4f31-80fb-a41ea45cb85a', 'rel': 'bookmark'}]}, {'uuid': 'cc64dc33-94ab-4f5b-8932-f6fadfce3147', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/cc64dc33-94ab-4f5b-8932-f6fadfce3147', 'rel': 'self'}, {'href': 'http://localhost/portgroups/cc64dc33-94ab-4f5b-8932-f6fadfce3147', 'rel': 'bookmark'}]}, {'uuid': '0be09e0f-e37b-4289-8be8-dd2d9d06c4e7', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/0be09e0f-e37b-4289-8be8-dd2d9d06c4e7', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0be09e0f-e37b-4289-8be8-dd2d9d06c4e7', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=0be09e0f-e37b-4289-8be8-dd2d9d06c4e7'} +GET: /v1/portgroups?fields=address,uuid {} +GOT:{'portgroups': [{'uuid': 'e86f95fb-e93b-456a-a66e-158c2a2609b9', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/e86f95fb-e93b-456a-a66e-158c2a2609b9', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e86f95fb-e93b-456a-a66e-158c2a2609b9', 'rel': 'bookmark'}]}, {'uuid': '2756fd63-d3d4-495d-97ea-f5bcc7cc13c9', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/2756fd63-d3d4-495d-97ea-f5bcc7cc13c9', 'rel': 'self'}, {'href': 'http://localhost/portgroups/2756fd63-d3d4-495d-97ea-f5bcc7cc13c9', 'rel': 'bookmark'}]}, {'uuid': 'b193cb3e-8666-418a-a036-da2362328009', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/portgroups/b193cb3e-8666-418a-a036-da2362328009', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b193cb3e-8666-418a-a036-da2362328009', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=b193cb3e-8666-418a-a036-da2362328009'} +GET: /v1/portgroups {} +GOT:{'portgroups': [{'uuid': '3f2e8b95-d089-45e1-bdbe-4877da8acc6b', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/3f2e8b95-d089-45e1-bdbe-4877da8acc6b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/3f2e8b95-d089-45e1-bdbe-4877da8acc6b', 'rel': 'bookmark'}]}, {'uuid': '0d824de1-0636-45f1-bdce-683c2a904b6f', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/0d824de1-0636-45f1-bdce-683c2a904b6f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0d824de1-0636-45f1-bdce-683c2a904b6f', 'rel': 'bookmark'}]}, {'uuid': '1b485214-2293-4c1a-84fc-1b0856ee3468', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/1b485214-2293-4c1a-84fc-1b0856ee3468', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1b485214-2293-4c1a-84fc-1b0856ee3468', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=1b485214-2293-4c1a-84fc-1b0856ee3468'} +GET: /v1/portgroups/detail {} +GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T15:33:53.815187+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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/detail {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-b4c38516-763b-476f-b399-d2c741cf5e1b +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/portgroups/detail?node=test-node {} +GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T15:33:54.333352+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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/detail {} +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_path +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_path ... ok +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-be4880e6-46c0-465b-8e07-f6e60a72037a +Openstack-Request-Id: req-efcf7c42-271c-4d28-bc29-0a75b11eab74 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "420ff1ad-e8ce-4214-b024-8d60f55fb623", "created_at": "2025-02-07T21:28:30.852862+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623 [{'path': '/vendor_interface', 'op': 'remove'}] +{"uuid": "3337c9c3-960b-4dc5-a412-f7a996394ee4", "created_at": "2024-01-06T15:33:53.913898+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-680ae4fe-d7bb-4b88-9231-0d9b68aa972e +Openstack-Request-Id: req-45829dc8-617f-4e5e-a1de-58c9bd649741 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "420ff1ad-e8ce-4214-b024-8d60f55fb623", "created_at": "2025-02-07T21:28:30.852862+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "self"}, {"href": "http://localhost/nodes/420ff1ad-e8ce-4214-b024-8d60f55fb623/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] -GOT:Response: 406 Not Acceptable +{"uuid": "3337c9c3-960b-4dc5-a412-f7a996394ee4", "created_at": "2024-01-06T15:33:53.913898+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter ... ok +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:51.986803+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, '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?fields=uuid,provision_state,maintenance,instance_uuid,last_error {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'provision_state': 'available', 'maintenance': False, 'instance_uuid': None, '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'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +GOT:{'portgroups': [{'uuid': '0ab394ec-b6ec-4bf0-be76-7144cf253eb0', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/0ab394ec-b6ec-4bf0-be76-7144cf253eb0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0ab394ec-b6ec-4bf0-be76-7144cf253eb0', 'rel': 'bookmark'}]}, {'uuid': 'c27fab64-7d2c-4aab-b756-ee5bcdf571f4', 'address': '52:54:00:cf:2d:31', 'name': 'pg-1', 'links': [{'href': 'http://localhost/v1/portgroups/c27fab64-7d2c-4aab-b756-ee5bcdf571f4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c27fab64-7d2c-4aab-b756-ee5bcdf571f4', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups?limit=1 {} +GOT:{'portgroups': [{'uuid': '0ab394ec-b6ec-4bf0-be76-7144cf253eb0', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/0ab394ec-b6ec-4bf0-be76-7144cf253eb0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0ab394ec-b6ec-4bf0-be76-7144cf253eb0', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=0ab394ec-b6ec-4bf0-be76-7144cf253eb0'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:53.794420+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': '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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:54.230423+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': '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/portgroups {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps ... ok +ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema +ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_009_third_party_admin_cannot_post_nodes +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_009_third_party_admin_cannot_post_nodes ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover ... ok +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_015_nodes_node_ident_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_015_nodes_node_ident_get_member ... ok +ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_args +ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_args ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__add_ip_addresses_for_ipv6_stateful +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__add_ip_addresses_for_ipv6_stateful ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true_connerror +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true_connerror ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_053_nodes_states_secure_boot_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_053_nodes_states_secure_boot_put_admin ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false ... ok +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident ... ok +ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_kwargs +ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_kwargs ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled ... ok +ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_mixed +ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_mixed ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize +ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize ... ok +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed ... ok +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image ... ok +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_allowed +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_054_nodes_states_secure_boot_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_054_nodes_states_secure_boot_put_member ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled ... ok +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-cf390b19-45bf-49d0-b008-87d42bba6008 +Openstack-Request-Id: req-01032013-a30e-46a4-966c-cbdc9744422b X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/name', 'value': 'new name', 'op': 'replace'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 06672dcd-39ae-4e15-bf95-59ae83cb80e3 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f71448ae-6cd1-4e73-8bd9-fa1e001602de +Openstack-Request-Id: req-790464cf-06d2-453b-9dc6-6a140be90b1d X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/02f62d51-6b41-40d2-853d-81b30b0387f6 [{'path': '/network_interface', 'op': 'remove'}] -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_without_boot_mode -ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_without_boot_mode ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step ... ok -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part ... ok -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-aac262e1-f4fe-4e59-8ba7-a69be6eb638d +Openstack-Request-Id: req-790464cf-06d2-453b-9dc6-6a140be90b1d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d4a133d0-690b-478c-89a7-5b5c489da651 +Openstack-Request-Id: req-fdf44384-cfaa-401f-b12a-af45623df5ec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-2653bb7f-f6b4-473d-a318-a2b3e786e4ad +Openstack-Request-Id: req-fdf44384-cfaa-401f-b12a-af45623df5ec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f07a1fb2-ef06-45b9-82b2-e3b3b83c0e25 +Openstack-Request-Id: req-04fc9bcd-0914-4fee-944b-676c559b9ee6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1bcf5aae-8109-4b13-b927-264392864194 +Openstack-Request-Id: req-04fc9bcd-0914-4fee-944b-676c559b9ee6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a8333bdf-3748-4630-8f03-e4487a8f3f78 +Openstack-Request-Id: req-1fa8a7ee-3c17-44ab-af07-a400abcb2249 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bb1c5adc-71c2-43b8-ac39-bb49f5b494c7 +Openstack-Request-Id: req-1fa8a7ee-3c17-44ab-af07-a400abcb2249 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ebca7aa1-68cb-4981-9e1e-505394211590 +Openstack-Request-Id: req-185e9b8b-f4b9-4023-8c98-db9838dde496 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-32d5a3d0-1abe-42b8-8e96-6e00c8554dc2 +Openstack-Request-Id: req-185e9b8b-f4b9-4023-8c98-db9838dde496 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-892dc12e-8a55-4c20-875f-a76049c5e9d8 +Openstack-Request-Id: req-3f428458-aeea-41d9-b9a0-de3e87dc9661 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-375d36e3-fa81-4351-bcad-00aefa68c1a5 +Openstack-Request-Id: req-3f428458-aeea-41d9-b9a0-de3e87dc9661 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1f96816d-0285-4459-82d9-fadfaa85d6ee +Openstack-Request-Id: req-bc43c296-ce8d-42aa-8793-59dfa02593b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1b7e95d1-53ee-4675-a99a-d6bfb06058a3 +Openstack-Request-Id: req-bc43c296-ce8d-42aa-8793-59dfa02593b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d56009e3-38b2-4bed-876f-76061061133d +Openstack-Request-Id: req-4ca74d3c-8a6f-4843-a66f-317fae399d22 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner ... ok -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d0afed4f-5fab-4c32-8c64-af3ed8e98e50 +Openstack-Request-Id: req-4ca74d3c-8a6f-4843-a66f-317fae399d22 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:35.428401+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_010_third_party_admin_can_post_nodes +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_010_third_party_admin_can_post_nodes ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 ... ok +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits ... ok +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_disabled +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_disabled ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d0afed4f-5fab-4c32-8c64-af3ed8e98e50 +Openstack-Request-Id: req-35252229-16de-488d-8799-e2c50a1e239d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:35.428401+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits ... ok -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_005_lessee_admin_cannot_post_nodes -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_005_lessee_admin_cannot_post_nodes ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_049_nodes_states_power_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_049_nodes_states_power_put_observer ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties -ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties ... ok -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:34.860142+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': 'flat', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': '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 {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:36.025115+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': '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 {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:36.025115+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'foo', 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': '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 {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:36.531996+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_016_nodes_node_ident_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_016_nodes_node_ident_get_reader ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged_for_fake_node -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged_for_fake_node ... ok -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner_no_match -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner_no_match ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_agent_busy -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_agent_busy ... ok -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise ... ok -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits ... ok -ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port -ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail ... ok -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_inspect_hardware_with_ethernet_interfaces_mac -ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_inspect_hardware_with_ethernet_interfaces_mac ... ok -ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client -ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client ... ok -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_all -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_all ... ok -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details - warnings.warn("%s is an invalid UUID. Using UUIDFields " -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project_no_match -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project_no_match ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true ... ok -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_050_nodes_states_boot_mode_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_050_nodes_states_boot_mode_put_admin ... ok -ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_exception -ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_exception ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_006_lessee_admin_can_post_nodes -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_006_lessee_admin_can_post_nodes ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state ... ok -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist ... ok -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id -ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance ... ok -ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file -ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async ... ok -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:36.531996+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': 'cinder', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:37.013851+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:37.013851+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': ['CUSTOM_1'], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_017_nodes_node_ident_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_017_nodes_node_ident_patch_admin ... ok -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits ... ok -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port -ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port ... ok -ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions -ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume ... ok -ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string -ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors ... ok -ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor -ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor ... ok +{"uuid": "3337c9c3-960b-4dc5-a412-f7a996394ee4", "created_at": "2024-01-06T15:33:53.913898+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "self"}, {"href": "http://localhost/nodes/3337c9c3-960b-4dc5-a412-f7a996394ee4/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/a070e2ee-eb91-4079-9ed4-ad8df157e3df [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-3153ebb5-0657-4e2a-b07d-892ec52fa937 +Openstack-Request-Id: req-e1ca417a-88b7-44c8-aeb5-0cfa82c50bb2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'inspect_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +PATCH: /v1/nodes/a070e2ee-eb91-4079-9ed4-ad8df157e3df [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-d898590d-40f3-4caa-ad8a-2d29b0942a60 +Openstack-Request-Id: req-5cdfebb4-12b2-4ec0-86bc-573da44901ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'management_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +PATCH: /v1/nodes/a070e2ee-eb91-4079-9ed4-ad8df157e3df [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-b6ae3bc3-f456-4440-9deb-f10d0381438d +Openstack-Request-Id: req-b4bb9e9b-feeb-47ed-8678-f4d4abd61f93 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'power_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +PATCH: /v1/nodes/a070e2ee-eb91-4079-9ed4-ad8df157e3df [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-102b91fc-7c4e-4ca6-a5da-0e22b3dd9fd0 +Openstack-Request-Id: req-5aacdaab-ae42-4482-8c3b-840328bcf0d6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'raid_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +PATCH: /v1/nodes/a070e2ee-eb91-4079-9ed4-ad8df157e3df [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-cca9dd85-9e2f-4ea7-a335-ceadcc95d833 +Openstack-Request-Id: req-762459a1-74c8-4610-81f1-ace9cecf8fe7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'vendor_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +PATCH: /v1/nodes/a070e2ee-eb91-4079-9ed4-ad8df157e3df [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-67ca9282-920c-4ccd-93c2-86f235d113dd +Openstack-Request-Id: req-974daec4-2ec5-4d10-b5e6-42c8a18297a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +PATCH: /v1/nodes/a070e2ee-eb91-4079-9ed4-ad8df157e3df [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-6bd203db-d569-4fde-9c19-7a35d0808ce9 +Openstack-Request-Id: req-8997f6a6-f39b-4609-b840-4399cb1c51a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('traits' was unexpected)\", \"debuginfo\": null}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'storage_interface': 'cinder', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/a070e2ee-eb91-4079-9ed4-ad8df157e3df [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-cf9f5b2c-77e2-494a-a39e-c8bd1b65b825 +Openstack-Request-Id: req-29185317-6fd4-4545-b55c-6a38f57bccb0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.32 +X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-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', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address ... ok -ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model -ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address -ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address ... ok +PATCH: /v1/nodes/f7c9ed20-ee1c-4fe9-970b-75539e2c66d0 [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee ... ok + +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1762d9de-beeb-40a1-baf2-8fda72b8e02b +Openstack-Request-Id: req-1b7bc5a1-ba8f-4224-b0f0-162473009217 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "02f62d51-6b41-40d2-853d-81b30b0387f6", "created_at": "2025-02-07T21:28:36.152715+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/02f62d51-6b41-40d2-853d-81b30b0387f6", "rel": "self"}, {"href": "http://localhost/nodes/02f62d51-6b41-40d2-853d-81b30b0387f6", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/02f62d51-6b41-40d2-853d-81b30b0387f6/ports", "rel": "self"}, {"href": "http://localhost/nodes/02f62d51-6b41-40d2-853d-81b30b0387f6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/02f62d51-6b41-40d2-853d-81b30b0387f6/states", "rel": "self"}, {"href": "http://localhost/nodes/02f62d51-6b41-40d2-853d-81b30b0387f6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/02f62d51-6b41-40d2-853d-81b30b0387f6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/02f62d51-6b41-40d2-853d-81b30b0387f6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/02f62d51-6b41-40d2-853d-81b30b0387f6/volume", "rel": "self"}, {"href": "http://localhost/nodes/02f62d51-6b41-40d2-853d-81b30b0387f6/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/b7fce2c8-7e4c-43f5-82c4-7d8c84c1939a [{'path': '/storage_interface', 'op': 'remove'}] -GOT:Response: 200 OK +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:54.142782+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-504528a0-0f1a-4335-9d26-8606b2e26360 +Openstack-Request-Id: req-1b7bc5a1-ba8f-4224-b0f0-162473009217 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b7fce2c8-7e4c-43f5-82c4-7d8c84c1939a", "created_at": "2025-02-07T21:28:36.662809+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/b7fce2c8-7e4c-43f5-82c4-7d8c84c1939a", "rel": "self"}, {"href": "http://localhost/nodes/b7fce2c8-7e4c-43f5-82c4-7d8c84c1939a", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b7fce2c8-7e4c-43f5-82c4-7d8c84c1939a/ports", "rel": "self"}, {"href": "http://localhost/nodes/b7fce2c8-7e4c-43f5-82c4-7d8c84c1939a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b7fce2c8-7e4c-43f5-82c4-7d8c84c1939a/states", "rel": "self"}, {"href": "http://localhost/nodes/b7fce2c8-7e4c-43f5-82c4-7d8c84c1939a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b7fce2c8-7e4c-43f5-82c4-7d8c84c1939a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b7fce2c8-7e4c-43f5-82c4-7d8c84c1939a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b7fce2c8-7e4c-43f5-82c4-7d8c84c1939a/volume", "rel": "self"}, {"href": "http://localhost/nodes/b7fce2c8-7e4c-43f5-82c4-7d8c84c1939a/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/fd1a1326-d46d-402c-8790-4ba64a5fddf5 [{'path': '/instance_uuid', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-30be82f7-8293-4f3f-9228-bdadad841aa1 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "fd1a1326-d46d-402c-8790-4ba64a5fddf5", "created_at": "2025-02-07T21:28:37.589668+00:00", "updated_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", "cpus": "8", "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/fd1a1326-d46d-402c-8790-4ba64a5fddf5", "rel": "self"}, {"href": "http://localhost/nodes/fd1a1326-d46d-402c-8790-4ba64a5fddf5", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fd1a1326-d46d-402c-8790-4ba64a5fddf5/ports", "rel": "self"}, {"href": "http://localhost/nodes/fd1a1326-d46d-402c-8790-4ba64a5fddf5/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/17251b23-0e08-42e5-a703-ca87060358b6 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_collect_logs -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_collect_logs ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_051_nodes_states_boot_mode_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_051_nodes_states_boot_mode_put_member ... ok -ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes -ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info ... ok -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_007_lessee_manager_cannot_post_nodes -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_007_lessee_manager_cannot_post_nodes ... ok -ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null -ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid -ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported ... ok -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_value_verify_ca -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_value_verify_ca ... ok -ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces -ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_018_system_admin_can_patch_chassis -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_018_system_admin_can_patch_chassis ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis ... ok -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:38.894916+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}]} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:54.142782+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:38.894916+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/4fded399-6883-47b7-9f52-950187ee6043 {} -GOT:{'uuid': '4fded399-6883-47b7-9f52-950187ee6043', 'created_at': '2025-02-07T21:28:40.436973+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/4fded399-6883-47b7-9f52-950187ee6043', 'rel': 'self'}, {'href': 'http://localhost/nodes/4fded399-6883-47b7-9f52-950187ee6043', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/4fded399-6883-47b7-9f52-950187ee6043/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4fded399-6883-47b7-9f52-950187ee6043/ports', 'rel': 'bookmark'}]} -GET: /v1/nodes/4fded399-6883-47b7-9f52-950187ee6043 {} -GOT:{'uuid': '4fded399-6883-47b7-9f52-950187ee6043', 'created_at': '2025-02-07T21:28:40.436973+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/4fded399-6883-47b7-9f52-950187ee6043', 'rel': 'self'}, {'href': 'http://localhost/nodes/4fded399-6883-47b7-9f52-950187ee6043', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/4fded399-6883-47b7-9f52-950187ee6043/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4fded399-6883-47b7-9f52-950187ee6043/ports', 'rel': 'bookmark'}]} -GET: /nodes/4fded399-6883-47b7-9f52-950187ee6043 {} -GOT:{'uuid': '4fded399-6883-47b7-9f52-950187ee6043', 'created_at': '2025-02-07T21:28:40.436973+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/4fded399-6883-47b7-9f52-950187ee6043', 'rel': 'self'}, {'href': 'http://localhost/nodes/4fded399-6883-47b7-9f52-950187ee6043', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/4fded399-6883-47b7-9f52-950187ee6043/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4fded399-6883-47b7-9f52-950187ee6043/ports', 'rel': 'bookmark'}]} -GET: /v1/nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b {} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_052_nodes_states_boot_mode_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_052_nodes_states_boot_mode_put_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist ... ok -ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default -ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ... ok -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty ... ok -GOT:Response: 204 No Content -Openstack-Request-Id: req-8b9191af-f3e6-447a-841b-353e0ed36bc1 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.63 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {'reason': 'fake_reason'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-6914f8cc-f0f2-4502-bfcd-5b5c8b0fd98c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -PUT: /v1/nodes/node-39/maintenance {'reason': 'fake_reason'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-26040e86-2c3b-47d7-9d82-1cacf751afb4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {'reason': 'fake'} -GOT:Response: 500 Internal Server Error +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-42f7909f-696b-40cf-9808-0f180dfbb1d7 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-5e6874c7-e60a-413d-8ff4-d1cee420b0f0 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -PUT: /v1/nodes/node-39/maintenance {} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-c8fabe63-5e60-4644-80fc-c02c84b286ec +Openstack-Request-Id: req-ae08056f-0188-45eb-aeba-b8ad5d86fa95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2ebbc2c4-4e2a-49c2-80e7-abda14638e82 +Openstack-Request-Id: req-ae08056f-0188-45eb-aeba-b8ad5d86fa95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_016_nodes_node_ident_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_016_nodes_node_ident_get_observer ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state ... ok +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance ... ok +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception ... ok +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid ... ok +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_invalid_value +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_invalid_value ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_055_nodes_states_secure_boot_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_055_nodes_states_secure_boot_put_observer ... ok +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_011_owner_member_cannot_post_nodes +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_011_owner_member_cannot_post_nodes ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortByAddress.test__get_ports_by_address +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortByAddress.test__get_ports_by_address ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_017_nodes_node_ident_patch_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_017_nodes_node_ident_patch_admin ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_port_cleaned +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_port_cleaned ... ok +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_invalid +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_invalid ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core ... ok +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_qs +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_qs ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_056_nodes_states_provision_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_056_nodes_states_provision_put_admin ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter ... ok +ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_indicator_state +ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_indicator_state ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5e6fdca9-4acb-4406-addb-c657aa5234a9 +Openstack-Request-Id: req-85c4e829-0177-4c16-aa9c-82e37330217e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.65 +{"uuid": "f7c9ed20-ee1c-4fe9-970b-75539e2c66d0", "created_at": "2024-01-06T15:33:55.649999+00:00", "updated_at": null, "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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_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/f7c9ed20-ee1c-4fe9-970b-75539e2c66d0", "rel": "self"}, {"href": "http://localhost/nodes/f7c9ed20-ee1c-4fe9-970b-75539e2c66d0", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f7c9ed20-ee1c-4fe9-970b-75539e2c66d0/ports", "rel": "self"}, {"href": "http://localhost/nodes/f7c9ed20-ee1c-4fe9-970b-75539e2c66d0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f7c9ed20-ee1c-4fe9-970b-75539e2c66d0/states", "rel": "self"}, {"href": "http://localhost/nodes/f7c9ed20-ee1c-4fe9-970b-75539e2c66d0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f7c9ed20-ee1c-4fe9-970b-75539e2c66d0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f7c9ed20-ee1c-4fe9-970b-75539e2c66d0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f7c9ed20-ee1c-4fe9-970b-75539e2c66d0/volume", "rel": "self"}, {"href": "http://localhost/nodes/f7c9ed20-ee1c-4fe9-970b-75539e2c66d0/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/14a7e94d-ec3e-4b42-9cff-a3b5de9faf46 [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-5e6fdca9-4acb-4406-addb-c657aa5234a9 +Openstack-Request-Id: req-196478bc-0222-49ad-9ba3-60692adbad98 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 503 Service Unavailable +X-Openstack-Ironic-Api-Version: 1.64 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/633d8781-3c3a-425d-bdcc-48680f2c846a [{'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.1ad', '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-c6a04484-a42b-43ea-b9a0-65592e079cdb +Openstack-Request-Id: req-a15c1928-ecd0-43bf-bdb8-de47ebb44967 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +X-Openstack-Ironic-Api-Version: 1.66 +{"uuid": "633d8781-3c3a-425d-bdcc-48680f2c846a", "created_at": "2024-01-06T15:33:56.278549+00:00", "updated_at": null, "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", "cpus": "8", "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/633d8781-3c3a-425d-bdcc-48680f2c846a", "rel": "self"}, {"href": "http://localhost/nodes/633d8781-3c3a-425d-bdcc-48680f2c846a", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/633d8781-3c3a-425d-bdcc-48680f2c846a/ports", "rel": "self"}, {"href": "http://localhost/nodes/633d8781-3c3a-425d-bdcc-48680f2c846a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/633d8781-3c3a-425d-bdcc-48680f2c846a/states", "rel": "self"}, {"href": "http://localhost/nodes/633d8781-3c3a-425d-bdcc-48680f2c846a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/633d8781-3c3a-425d-bdcc-48680f2c846a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/633d8781-3c3a-425d-bdcc-48680f2c846a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/633d8781-3c3a-425d-bdcc-48680f2c846a/volume", "rel": "self"}, {"href": "http://localhost/nodes/633d8781-3c3a-425d-bdcc-48680f2c846a/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/277ec837-f72a-43a7-aff0-c136ed3d07ba [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged_combine_ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged_combine_ok ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_http_scheme +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_http_scheme ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_018_nodes_node_ident_patch_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_018_nodes_node_ident_patch_member ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_custom +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_custom ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_012_owner_reader_cannot_post_reader +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_012_owner_reader_cannot_post_reader ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_versioning +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_versioning ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core ... ok +ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators +ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_forbidden +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_forbidden ... ok +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_057_nodes_states_provision_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_057_nodes_states_provision_put_member ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_redirected +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_redirected ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_datapath_id +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_datapath_id ... ok +ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state +ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state ... ok +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session ... ok +GOT:{'ports': [{'uuid': '6e713cda-aefc-4f6e-bf02-7891e89aceaf', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/6e713cda-aefc-4f6e-bf02-7891e89aceaf', 'rel': 'self'}, {'href': 'http://localhost/ports/6e713cda-aefc-4f6e-bf02-7891e89aceaf', 'rel': 'bookmark'}]}, {'uuid': '4da8bd44-828c-430a-9bb1-28a461a2a47e', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/4da8bd44-828c-430a-9bb1-28a461a2a47e', 'rel': 'self'}, {'href': 'http://localhost/ports/4da8bd44-828c-430a-9bb1-28a461a2a47e', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 {} +GOT:{'ports': [{'uuid': '6e713cda-aefc-4f6e-bf02-7891e89aceaf', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/6e713cda-aefc-4f6e-bf02-7891e89aceaf', 'rel': 'self'}, {'href': 'http://localhost/ports/6e713cda-aefc-4f6e-bf02-7891e89aceaf', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=6e713cda-aefc-4f6e-bf02-7891e89aceaf'} +GET: /v1/nodes/123 123/ports {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c6a04484-a42b-43ea-b9a0-65592e079cdb -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 403 Forbidden +{"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for node: 123 123\"}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:33:55.683438+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e54b589b-19a4-46f8-8c84-e4ae58b7352a +Openstack-Request-Id: req-02110bbe-4783-4c07-9d86-ef4fe23504bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup None could not be found.\", \"debuginfo\": null}"} +GET: /v1/nodes/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e54b589b-19a4-46f8-8c84-e4ae58b7352a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6c8d3a7e-45df-4fc0-98fe-b66a39c7683c +Openstack-Request-Id: req-77dcd5aa-3a83-4d6b-8f46-621ba7164967 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +GET: /v1/nodes?sort_key=uuid {} +GOT:{'nodes': [{'uuid': '1daf710d-e185-4984-a905-7463b4104736', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1daf710d-e185-4984-a905-7463b4104736', 'rel': 'self'}, {'href': 'http://localhost/nodes/1daf710d-e185-4984-a905-7463b4104736', 'rel': 'bookmark'}]}, {'uuid': '79659455-2006-4ac3-95d5-fc0ccb660085', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/79659455-2006-4ac3-95d5-fc0ccb660085', 'rel': 'self'}, {'href': 'http://localhost/nodes/79659455-2006-4ac3-95d5-fc0ccb660085', 'rel': 'bookmark'}]}, {'uuid': 'f48594c5-9b3d-49f7-8e4f-accfe08cc5d8', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/f48594c5-9b3d-49f7-8e4f-accfe08cc5d8', 'rel': 'self'}, {'href': 'http://localhost/nodes/f48594c5-9b3d-49f7-8e4f-accfe08cc5d8', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?sort_key=resource_class {} +GOT:{'nodes': [{'uuid': '345b909a-737e-4bcc-899f-46cb93cd037e', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/345b909a-737e-4bcc-899f-46cb93cd037e', 'rel': 'self'}, {'href': 'http://localhost/nodes/345b909a-737e-4bcc-899f-46cb93cd037e', 'rel': 'bookmark'}]}, {'uuid': '9dd730cd-b3bc-493e-9f11-f2ea14a036ab', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/9dd730cd-b3bc-493e-9f11-f2ea14a036ab', 'rel': 'self'}, {'href': 'http://localhost/nodes/9dd730cd-b3bc-493e-9f11-f2ea14a036ab', 'rel': 'bookmark'}]}, {'uuid': 'b260dab6-05b9-4e92-9711-9dc2f327a1c1', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/b260dab6-05b9-4e92-9711-9dc2f327a1c1', 'rel': 'self'}, {'href': 'http://localhost/nodes/b260dab6-05b9-4e92-9711-9dc2f327a1c1', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?sort_key=foo {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6c8d3a7e-45df-4fc0-98fe-b66a39c7683c +Openstack-Request-Id: req-e9e1c34f-a213-4659-ae22-c5e8f5737040 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/nodes?sort_key=properties {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-68696ed1-b037-47f4-9426-3cd3fc8823a3 +Openstack-Request-Id: req-d7399389-bdda-4a2b-98d8-cb6a291b4c90 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-68696ed1-b037-47f4-9426-3cd3fc8823a3 +Openstack-Request-Id: req-804706d9-1784-4973-a5ed-11da00b2eb60 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 403 Forbidden +{"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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f6cbee22-ca82-4d0c-b211-d91fe8eea413 +Openstack-Request-Id: req-1e04b30a-2974-42c2-86e4-2f3be86aae92 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f6cbee22-ca82-4d0c-b211-d91fe8eea413 +Openstack-Request-Id: req-5ca3733a-1ec3-4ea0-af72-149066be24d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all_disable_ramdisk -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all_disable_ramdisk ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_008_lessee_manager_can_post_nodes -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_008_lessee_manager_can_post_nodes ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue ... ok -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_053_nodes_states_secure_boot_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_053_nodes_states_secure_boot_put_admin ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_with_false -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_with_false ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config_fail -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config_fail ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning ... ok +{"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 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-92b3320f-ab16-498a-b05d-170896d12181 +Openstack-Request-Id: req-3947c52a-b8ed-4d00-a2de-b1c05d18ca7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:36.407007+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:55.631220+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-92b3320f-ab16-498a-b05d-170896d12181 +Openstack-Request-Id: req-3947c52a-b8ed-4d00-a2de-b1c05d18ca7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:36.407007+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:55.631220+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-31a4d3cf-0649-4acc-9d83-6b07e130b75c +Openstack-Request-Id: req-e47dd3d3-b89b-4ff9-b096-1086a709ba2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-31a4d3cf-0649-4acc-9d83-6b07e130b75c +Openstack-Request-Id: req-e47dd3d3-b89b-4ff9-b096-1086a709ba2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}] -GOT:Response: 503 Service Unavailable +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-107b1736-ac7c-440c-b487-a79ad64877ea +Openstack-Request-Id: req-d71a0dac-e287-49d2-b725-46b3c3ae64fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-107b1736-ac7c-440c-b487-a79ad64877ea +Openstack-Request-Id: req-d71a0dac-e287-49d2-b725-46b3c3ae64fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/conductor_group', 'value': 'DC04-ROW39'}] -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_019_system_member_can_patch_conductor_group -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_019_system_member_can_patch_conductor_group ... ok -GOT:Response: 201 Created +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_connect_error +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_connect_error ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_empty_value +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_empty_value ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes ... ok +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_019_nodes_node_ident_patch_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_019_nodes_node_ident_patch_observer ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_wrong_format +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_wrong_format ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_error +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_error ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_invalid_key +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_invalid_key ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_013_owner_admin_can_get_node +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_013_owner_admin_can_get_node ... ok +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed ... ok +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-9533f04d-6910-4dfe-95d3-3c304bb3a9d2 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/portgroups?detail=True {} +GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T15:33:55.017989+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {} +GOT:{'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 {} +GOT:{'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?sort_key=mode {} +GOT:{'portgroups': [{'uuid': '1bc60dea-de29-4dc2-960f-e1a14f3bf500', 'created_at': '2024-01-06T15:33:55.656997+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'mode_1', 'name': 'portgroup1', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/1bc60dea-de29-4dc2-960f-e1a14f3bf500', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1bc60dea-de29-4dc2-960f-e1a14f3bf500', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/1bc60dea-de29-4dc2-960f-e1a14f3bf500/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1bc60dea-de29-4dc2-960f-e1a14f3bf500/ports', 'rel': 'bookmark'}]}, {'uuid': '552527cf-131f-4199-a4dd-caaa2a9dcea4', 'created_at': '2024-01-06T15:33:55.655181+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:32', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'mode_2', 'name': 'portgroup2', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/552527cf-131f-4199-a4dd-caaa2a9dcea4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/552527cf-131f-4199-a4dd-caaa2a9dcea4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/552527cf-131f-4199-a4dd-caaa2a9dcea4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/552527cf-131f-4199-a4dd-caaa2a9dcea4/ports', 'rel': 'bookmark'}]}, {'uuid': 'c0a45f84-7c7c-4201-a9c1-8b27012373cd', 'created_at': '2024-01-06T15:33:55.653806+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:33', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'mode_3', 'name': 'portgroup3', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/c0a45f84-7c7c-4201-a9c1-8b27012373cd', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c0a45f84-7c7c-4201-a9c1-8b27012373cd', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/c0a45f84-7c7c-4201-a9c1-8b27012373cd/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c0a45f84-7c7c-4201-a9c1-8b27012373cd/ports', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups/detail?sort_key=mode {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-5226e877-9998-4023-8688-5281910e5b3d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:39.871754+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", "cpus": "8", "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:39.871754+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +X-Openstack-Ironic-Api-Version: 1.25 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/portgroups?detail=True&fields=name {} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-991825ce-7afe-49e9-b5b6-c1402f6bf11f +Openstack-Request-Id: req-573336b7-64a1-48ef-bb89-805376009800 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:40.995016+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", "cpus": "8", "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:40.995016+00:00', 'updated_at': None, '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': None, 'dict': {'cat': 'meow'}}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_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'} -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_dir -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_dir ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state ... ok -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_file -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_file ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_009_third_party_admin_cannot_post_nodes -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_009_third_party_admin_cannot_post_nodes ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_054_nodes_states_secure_boot_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_054_nodes_states_secure_boot_put_member ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist ... ok -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error ... ok -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} +GET: /v1/portgroups?detail=False&fields=internal_info {} +GOT:{'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'}]}]} +GET: /v1/portgroups?detail=True {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-3bb49214-a576-4c3d-bfd2-738f9be15a99 +Openstack-Request-Id: req-a927b086-8889-44fa-8688-a1e4cc85f3c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "17251b23-0e08-42e5-a703-ca87060358b6", "created_at": "2025-02-07T21:28:40.003600+00:00", "updated_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", "cpus": "8", "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/17251b23-0e08-42e5-a703-ca87060358b6", "rel": "self"}, {"href": "http://localhost/nodes/17251b23-0e08-42e5-a703-ca87060358b6", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/17251b23-0e08-42e5-a703-ca87060358b6/ports", "rel": "self"}, {"href": "http://localhost/nodes/17251b23-0e08-42e5-a703-ca87060358b6/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/99613238-1249-4ca8-8839-1866a7efc2d0 [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.42 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} +GET: /v1/portgroups {} +GOT:{'portgroups': []} +GET: /v1/portgroups?node=test-node {} +GOT:{'portgroups': [{'uuid': 'dc9b6e98-ef3d-43d8-b86c-8ba1e25434f0', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/dc9b6e98-ef3d-43d8-b86c-8ba1e25434f0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/dc9b6e98-ef3d-43d8-b86c-8ba1e25434f0', 'rel': 'bookmark'}]}, {'uuid': '8531ff00-042b-45c2-be42-7ab13b5bfd60', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/8531ff00-042b-45c2-be42-7ab13b5bfd60', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8531ff00-042b-45c2-be42-7ab13b5bfd60', 'rel': 'bookmark'}]}, {'uuid': '212d2ea9-2f07-41c4-b5e8-750b8aac09a1', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/212d2ea9-2f07-41c4-b5e8-750b8aac09a1', 'rel': 'self'}, {'href': 'http://localhost/portgroups/212d2ea9-2f07-41c4-b5e8-750b8aac09a1', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups/detail?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T15:33:57.349713+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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/ports {} +GOT:{'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/portgroups?fields=uuid,extra {} +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_058_nodes_states_provision_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_058_nodes_states_provision_put_observer ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_local_link_keys_mandatory +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_local_link_keys_mandatory ... ok +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3c8b211a-74ce-4d0c-b6bf-91e865951015 +Openstack-Request-Id: req-25b87d45-e544-40ed-a1fe-5224a906df7a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.47 -{"uuid": "99613238-1249-4ca8-8839-1866a7efc2d0", "created_at": "2025-02-07T21:28:40.844214+00:00", "updated_at": null, "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", "cpus": "8", "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/99613238-1249-4ca8-8839-1866a7efc2d0", "rel": "self"}, {"href": "http://localhost/nodes/99613238-1249-4ca8-8839-1866a7efc2d0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/99613238-1249-4ca8-8839-1866a7efc2d0/ports", "rel": "self"}, {"href": "http://localhost/nodes/99613238-1249-4ca8-8839-1866a7efc2d0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/99613238-1249-4ca8-8839-1866a7efc2d0/states", "rel": "self"}, {"href": "http://localhost/nodes/99613238-1249-4ca8-8839-1866a7efc2d0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/99613238-1249-4ca8-8839-1866a7efc2d0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/99613238-1249-4ca8-8839-1866a7efc2d0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/99613238-1249-4ca8-8839-1866a7efc2d0/volume", "rel": "self"}, {"href": "http://localhost/nodes/99613238-1249-4ca8-8839-1866a7efc2d0/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/cb0f8d43-c4b3-4ed8-85ab-2ad1c2e9feb7 [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.66 +{"uuid": "277ec837-f72a-43a7-aff0-c136ed3d07ba", "created_at": "2024-01-06T15:33:56.874666+00:00", "updated_at": null, "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", "cpus": "8", "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/277ec837-f72a-43a7-aff0-c136ed3d07ba", "rel": "self"}, {"href": "http://localhost/nodes/277ec837-f72a-43a7-aff0-c136ed3d07ba", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/277ec837-f72a-43a7-aff0-c136ed3d07ba/ports", "rel": "self"}, {"href": "http://localhost/nodes/277ec837-f72a-43a7-aff0-c136ed3d07ba/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/277ec837-f72a-43a7-aff0-c136ed3d07ba/states", "rel": "self"}, {"href": "http://localhost/nodes/277ec837-f72a-43a7-aff0-c136ed3d07ba/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/277ec837-f72a-43a7-aff0-c136ed3d07ba/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/277ec837-f72a-43a7-aff0-c136ed3d07ba/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/277ec837-f72a-43a7-aff0-c136ed3d07ba/volume", "rel": "self"}, {"href": "http://localhost/nodes/277ec837-f72a-43a7-aff0-c136ed3d07ba/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/228519ee-eb5c-4bf8-b282-6fb1930023ae [{'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.1ad', '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-5f4706c7-6261-4b87-8171-b05078f0b1a4 +Openstack-Request-Id: req-0e83a4c5-e407-4a90-92c3-d0f82b279a79 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 +X-Openstack-Ironic-Api-Version: 1.62 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/72d3c7e1-2066-4437-a648-f1b7fda53908 [{'path': '/automated_clean', 'value': False, 'op': 'replace'}] -GOT:Response: 403 Forbidden +PATCH: /v1/nodes/8a661b4a-b8ec-4e0b-b7c1-e17f277b6143 [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b5e4d96f-1859-4dc1-be2a-86dc9a35e8d6 +Openstack-Request-Id: req-e9a93288-0700-4e68-ac1c-7927f27be089 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/node-57.1 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-09c75d1b-0f01-4f90-9e9c-3f0b55029c13 +X-Openstack-Ironic-Api-Version: 1.66 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid network_data: 'links' is a required property \", \"debuginfo\": null}"} +PATCH: /v1/nodes/d087709f-2ade-4bd3-8c6f-48eb71c2b756 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false_error +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false_error ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_missing_local_link_mandatory_key +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_missing_local_link_mandatory_key ... ok +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding ... ok +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-a8942845-79da-4c2e-b228-700557da4d9d X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/fa67bdf6-85f3-452b-8eac-974e3c3ce932 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_fail -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error ... ok -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_020_nodes_node_ident_patch_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_020_nodes_node_ident_patch_member ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_055_nodes_states_secure_boot_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_055_nodes_states_secure_boot_put_observer ... ok -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol ... ok -GOT:{'uuid': '5e7d1376-3d40-44cc-96d8-4d7066223e7b', 'created_at': '2025-02-07T21:28:41.046085+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://foo/v1/nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b', 'rel': 'self'}, {'href': 'http://foo/nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b/ports', 'rel': 'bookmark'}]} -GET: /v1/nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b {} -GOT:{'uuid': '5e7d1376-3d40-44cc-96d8-4d7066223e7b', 'created_at': '2025-02-07T21:28:41.046085+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://foo/v1/nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b', 'rel': 'self'}, {'href': 'http://foo/nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b/ports', 'rel': 'bookmark'}]} -GET: /nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b {} -GOT:{'uuid': '5e7d1376-3d40-44cc-96d8-4d7066223e7b', 'created_at': '2025-02-07T21:28:41.046085+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://foo/v1/nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b', 'rel': 'self'}, {'href': 'http://foo/nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/5e7d1376-3d40-44cc-96d8-4d7066223e7b/ports', 'rel': 'bookmark'}]} -GET: /v1/nodes?maintenance=true {} -GOT:{'nodes': [{'uuid': '20db42bd-8661-4108-9915-9bd285915a5f', 'instance_uuid': None, 'maintenance': True, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/20db42bd-8661-4108-9915-9bd285915a5f', 'rel': 'self'}, {'href': 'http://localhost/nodes/20db42bd-8661-4108-9915-9bd285915a5f', 'rel': 'bookmark'}]}, {'uuid': '60793281-90f9-41a5-ad7a-0cc6127d2874', 'instance_uuid': None, 'maintenance': True, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/60793281-90f9-41a5-ad7a-0cc6127d2874', 'rel': 'self'}, {'href': 'http://localhost/nodes/60793281-90f9-41a5-ad7a-0cc6127d2874', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?maintenance=false {} -GOT:{'nodes': [{'uuid': '9bb3cbb3-629f-4d78-a813-e30851937ea0', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/9bb3cbb3-629f-4d78-a813-e30851937ea0', 'rel': 'self'}, {'href': 'http://localhost/nodes/9bb3cbb3-629f-4d78-a813-e30851937ea0', 'rel': 'bookmark'}]}, {'uuid': '11d869cc-01dc-4bc3-910c-ba0991a6547c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/11d869cc-01dc-4bc3-910c-ba0991a6547c', 'rel': 'self'}, {'href': 'http://localhost/nodes/11d869cc-01dc-4bc3-910c-ba0991a6547c', 'rel': 'bookmark'}]}, {'uuid': 'd12b7e45-656a-4c67-ba08-213b3015b455', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/d12b7e45-656a-4c67-ba08-213b3015b455', 'rel': 'self'}, {'href': 'http://localhost/nodes/d12b7e45-656a-4c67-ba08-213b3015b455', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=true&maintenance=false {} -GOT:{'nodes': [{'uuid': '21a9491c-c442-4408-8810-8c2fd5f20669', 'instance_uuid': '1904c2a2-2f4e-43c4-8115-f63f528aeace', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/21a9491c-c442-4408-8810-8c2fd5f20669', 'rel': 'self'}, {'href': 'http://localhost/nodes/21a9491c-c442-4408-8810-8c2fd5f20669', 'rel': 'bookmark'}]}, {'uuid': '11ea6be3-0374-4559-b6a8-16fc619b35a9', 'instance_uuid': '0fd341bf-f42b-4622-b515-a7dae362e23b', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/11ea6be3-0374-4559-b6a8-16fc619b35a9', 'rel': 'self'}, {'href': 'http://localhost/nodes/11ea6be3-0374-4559-b6a8-16fc619b35a9', 'rel': 'bookmark'}]}, {'uuid': '6c7405c6-b737-42e6-b223-7dff4dfe4375', 'instance_uuid': '6629e95b-9965-490f-aa38-1a00f56e377a', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/6c7405c6-b737-42e6-b223-7dff4dfe4375', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c7405c6-b737-42e6-b223-7dff4dfe4375', 'rel': 'bookmark'}]}, {'uuid': '33445fee-6ca5-4385-b4f2-a2121f6a2dec', 'instance_uuid': 'fb84106f-ed71-4a5d-94d1-11f7999bf50d', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/33445fee-6ca5-4385-b4f2-a2121f6a2dec', 'rel': 'self'}, {'href': 'http://localhost/nodes/33445fee-6ca5-4385-b4f2-a2121f6a2dec', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=true&maintenance=true {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': '7f5b9314-8bda-4e85-883c-25ff53a0c5e9', 'maintenance': True, 'power_state': None, 'provision_state': None, '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 {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': '7f5b9314-8bda-4e85-883c-25ff53a0c5e9', 'maintenance': True, 'power_state': None, 'provision_state': None, '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=blah {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-33b4c646-929a-4744-8578-b7e7175d24ab + +PUT: /v1/nodes/node-39/management/boot_device {'boot_device': 'pxe'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-cd05efad-fc0e-42d8-b06d-eeb760c4e24e X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes {} -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_with_reboot -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_with_reboot ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_010_third_party_admin_can_post_nodes -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_010_third_party_admin_can_post_nodes ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit ... ok -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist ... ok -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.5 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-54da5996-2c16-484f-9a0d-637a9cc9d377 +Openstack-Request-Id: req-50361864-12e0-469f-a5ba-2aa0c9041d87 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:41.665271+00:00", "updated_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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:41.665271+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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-2449107a-dcff-45bd-b2f8-66e8364c4c61 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device?persistent=True {'boot_device': 'pxe'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-b25af491-6539-4dfe-bdfc-42f87d299361 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:42.347284+00:00", "updated_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", "cpus": "8", "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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:42.347284+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': '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'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device?persistent=blah {'boot_device': 'pxe'} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-6d8ce3c5-b936-4b2a-b6d4-3aab43a55a48 +Openstack-Request-Id: req-35ef8640-9d0d-4fd6-86e4-9bf03171230e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:42.964836+00:00", "updated_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", "cpus": "8", "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 {} -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_forbidden ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_056_nodes_states_provision_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_056_nodes_states_provision_put_admin ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description ... ok -ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive -ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive ... ok -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off ... ok -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_021_nodes_node_ident_patch_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_021_nodes_node_ident_patch_reader ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_false -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_false ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state ... ok -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-6313991e-081b-46f9-88c4-508d04bcc635 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "fa67bdf6-85f3-452b-8eac-974e3c3ce932", "created_at": "2025-02-07T21:28:42.260986+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", "cpus": "8", "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/fa67bdf6-85f3-452b-8eac-974e3c3ce932", "rel": "self"}, {"href": "http://localhost/nodes/fa67bdf6-85f3-452b-8eac-974e3c3ce932", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fa67bdf6-85f3-452b-8eac-974e3c3ce932/ports", "rel": "self"}, {"href": "http://localhost/nodes/fa67bdf6-85f3-452b-8eac-974e3c3ce932/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fa67bdf6-85f3-452b-8eac-974e3c3ce932/states", "rel": "self"}, {"href": "http://localhost/nodes/fa67bdf6-85f3-452b-8eac-974e3c3ce932/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fa67bdf6-85f3-452b-8eac-974e3c3ce932/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fa67bdf6-85f3-452b-8eac-974e3c3ce932/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fa67bdf6-85f3-452b-8eac-974e3c3ce932/volume", "rel": "self"}, {"href": "http://localhost/nodes/fa67bdf6-85f3-452b-8eac-974e3c3ce932/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/107e4360-1919-47b8-b416-2e841d44dacb [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-2a89e937-b48f-40cc-86cc-1abf34dd7541 +{"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}"} +PUT: /v1/nodes/node-39/states/console {'enabled': 'true'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/node-39/states/console +Openstack-Request-Id: req-6842fcde-1261-4825-9fe2-b6f3e770d421 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/f1a827ca-a72c-453c-8f7b-382f2a863ea3 [{'path': '/description', 'value': 'meow', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.5 + +PUT: /v1/nodes/node-39/states/console {'enabled': 'true'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-791479d3-e095-406a-b376-07ca511c005d +Openstack-Request-Id: req-eee3ee71-20e2-41fc-aa79-0bcf46a5abe7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.51 -{"uuid": "f1a827ca-a72c-453c-8f7b-382f2a863ea3", "created_at": "2025-02-07T21:28:43.089680+00:00", "updated_at": null, "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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": 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/f1a827ca-a72c-453c-8f7b-382f2a863ea3", "rel": "self"}, {"href": "http://localhost/nodes/f1a827ca-a72c-453c-8f7b-382f2a863ea3", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f1a827ca-a72c-453c-8f7b-382f2a863ea3/ports", "rel": "self"}, {"href": "http://localhost/nodes/f1a827ca-a72c-453c-8f7b-382f2a863ea3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f1a827ca-a72c-453c-8f7b-382f2a863ea3/states", "rel": "self"}, {"href": "http://localhost/nodes/f1a827ca-a72c-453c-8f7b-382f2a863ea3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f1a827ca-a72c-453c-8f7b-382f2a863ea3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f1a827ca-a72c-453c-8f7b-382f2a863ea3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f1a827ca-a72c-453c-8f7b-382f2a863ea3/volume", "rel": "self"}, {"href": "http://localhost/nodes/f1a827ca-a72c-453c-8f7b-382f2a863ea3/volume", "rel": "bookmark"}]} -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config_fail -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config_fail ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked ... ok -ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift -ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_011_owner_member_cannot_post_nodes -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_011_owner_member_cannot_post_nodes ... ok -ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_cd -ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_cd ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize ... ok -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_true -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_true ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list ... ok -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_default_value -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_default_value ... ok -ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_build -ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_build ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_057_nodes_states_provision_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_057_nodes_states_provision_put_member ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config ... ok -ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_disk -ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_disk ... ok -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout ... ok -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_string_false -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_string_false ... ok -ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout -ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbid_project_mismatch -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbid_project_mismatch ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_022_nodes_node_ident_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_022_nodes_node_ident_delete_admin ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config_fail -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_012_owner_reader_cannot_post_reader -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_012_owner_reader_cannot_post_reader ... ok -ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback -ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback ... ok -ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios -ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios ... ok -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing ... ok -ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_floppy -ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_floppy ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_058_nodes_states_provision_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_058_nodes_states_provision_put_observer ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked ... ok -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource ... ok -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_already_present -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_already_present ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file ... ok -ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_exception -ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_exception ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address ... ok -ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_persistent -ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_persistent ... ok -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail ... ok -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden_no_project -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden_no_project ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all ... ok -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off ... ok -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_023_nodes_node_ident_delete_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_023_nodes_node_ident_delete_member ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock ... ok -PATCH: /v1/nodes/35ab6ee4-28fe-4a28-b409-f759cab85d3d [{'path': '/description', 'value': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'invalid-value'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d38a1e90-765e-4c4f-88b5-aca8a0944dce +Openstack-Request-Id: req-f284e81b-8948-4e87-a1f6-34716ea941b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'value': 'bad-driver', 'op': 'replace'}] +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}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-4e67c83e-15b0-428c-9200-21e07af92065 +Openstack-Request-Id: req-630d1793-9b69-4b4a-97a2-3036dd4a0935 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver_info/this', 'value': 'foo', 'op': 'add'}, {'path': '/driver_info/that', 'value': 'bar', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: enabled\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'true'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d594f370-7f75-4636-9cb7-c2daa56afd49 +Openstack-Request-Id: req-54bf267b-f277-4230-8999-bb54b30caf6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/2d019708-b7ea-4380-ad15-a19c6decffb5 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-9859122e-0849-44e8-8a8d-d7ff7e8e446e +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'false'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console +Openstack-Request-Id: req-b131acf7-3101-4824-9d3d-93c29cf40d6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "2d019708-b7ea-4380-ad15-a19c6decffb5", "created_at": "2025-02-07T21:28:44.795483+00:00", "updated_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", "cpus": "8", "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/2d019708-b7ea-4380-ad15-a19c6decffb5", "rel": "self"}, {"href": "http://localhost/nodes/2d019708-b7ea-4380-ad15-a19c6decffb5", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2d019708-b7ea-4380-ad15-a19c6decffb5/ports", "rel": "self"}, {"href": "http://localhost/nodes/2d019708-b7ea-4380-ad15-a19c6decffb5/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/9f1513e1-af1c-4d5f-83e0-b7152738f768 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_unsupported -ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_unsupported ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_013_owner_admin_can_get_node -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_013_owner_admin_can_get_node ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_059_nodes_states_raid_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_059_nodes_states_raid_put_admin ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found ... ok -ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test_validate_correct_vendor -ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test_validate_correct_vendor ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to ... ok -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource ... ok -GOT:{'nodes': [{'uuid': '24ee520e-9ba1-46f0-83f7-2e86d8af9670', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/24ee520e-9ba1-46f0-83f7-2e86d8af9670', 'rel': 'self'}, {'href': 'http://localhost/nodes/24ee520e-9ba1-46f0-83f7-2e86d8af9670', 'rel': 'bookmark'}]}, {'uuid': '670e7843-516a-4362-870a-7cf2e89d3401', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/670e7843-516a-4362-870a-7cf2e89d3401', 'rel': 'self'}, {'href': 'http://localhost/nodes/670e7843-516a-4362-870a-7cf2e89d3401', 'rel': 'bookmark'}]}, {'uuid': 'a47f3cb7-b2ff-4289-b2e3-158446354aec', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/a47f3cb7-b2ff-4289-b2e3-158446354aec', 'rel': 'self'}, {'href': 'http://localhost/nodes/a47f3cb7-b2ff-4289-b2e3-158446354aec', 'rel': 'bookmark'}]}, {'uuid': '69d924ce-2afb-4ee3-ba3f-1df1e963a52a', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/69d924ce-2afb-4ee3-ba3f-1df1e963a52a', 'rel': 'self'}, {'href': 'http://localhost/nodes/69d924ce-2afb-4ee3-ba3f-1df1e963a52a', 'rel': 'bookmark'}]}, {'uuid': 'f4ff4b3b-5995-45a3-a585-aa1ef2a9e044', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/f4ff4b3b-5995-45a3-a585-aa1ef2a9e044', 'rel': 'self'}, {'href': 'http://localhost/nodes/f4ff4b3b-5995-45a3-a585-aa1ef2a9e044', 'rel': 'bookmark'}]}]} -GET: /v1/nodes {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-db0b7bcb-991f-4248-bd5f-f943bc21b22f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/nodes {} -GOT:{'nodes': [{'uuid': '1bb7b307-dbc4-4a03-a7d7-b93c85f2aa84', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-0', 'links': [{'href': 'http://localhost/v1/nodes/1bb7b307-dbc4-4a03-a7d7-b93c85f2aa84', 'rel': 'self'}, {'href': 'http://localhost/nodes/1bb7b307-dbc4-4a03-a7d7-b93c85f2aa84', 'rel': 'bookmark'}]}, {'uuid': '55dea63f-2369-4cf7-8eec-aab3ced3043c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-1', 'links': [{'href': 'http://localhost/v1/nodes/55dea63f-2369-4cf7-8eec-aab3ced3043c', 'rel': 'self'}, {'href': 'http://localhost/nodes/55dea63f-2369-4cf7-8eec-aab3ced3043c', 'rel': 'bookmark'}]}, {'uuid': 'd2594b44-5232-48f4-b7e6-91137128c1db', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-2', 'links': [{'href': 'http://localhost/v1/nodes/d2594b44-5232-48f4-b7e6-91137128c1db', 'rel': 'self'}, {'href': 'http://localhost/nodes/d2594b44-5232-48f4-b7e6-91137128c1db', 'rel': 'bookmark'}]}, {'uuid': '78f4e353-eb38-4402-a91e-ccae29b332bf', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-3', 'links': [{'href': 'http://localhost/v1/nodes/78f4e353-eb38-4402-a91e-ccae29b332bf', 'rel': 'self'}, {'href': 'http://localhost/nodes/78f4e353-eb38-4402-a91e-ccae29b332bf', 'rel': 'bookmark'}]}, {'uuid': 'b39f2e50-d704-4c4f-ae15-b8ccd38dbd8a', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-4', 'links': [{'href': 'http://localhost/v1/nodes/b39f2e50-d704-4c4f-ae15-b8ccd38dbd8a', 'rel': 'self'}, {'href': 'http://localhost/nodes/b39f2e50-d704-4c4f-ae15-b8ccd38dbd8a', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?project=54321 {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-832f9d07-f0aa-427b-a777-257d39abd639 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/nodes {} -GOT:{'nodes': [{'uuid': '5fa57832-36ce-46ba-b038-ce401d45d35e', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/5fa57832-36ce-46ba-b038-ce401d45d35e', 'rel': 'self'}, {'href': 'http://localhost/nodes/5fa57832-36ce-46ba-b038-ce401d45d35e', 'rel': 'bookmark'}]}, {'uuid': 'd10a5880-495f-4c00-9ed0-9ce2e934073f', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/d10a5880-495f-4c00-9ed0-9ce2e934073f', 'rel': 'self'}, {'href': 'http://localhost/nodes/d10a5880-495f-4c00-9ed0-9ce2e934073f', 'rel': 'bookmark'}]}, {'uuid': '8296384a-f026-4583-bb19-079c866abab8', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/8296384a-f026-4583-bb19-079c866abab8', 'rel': 'self'}, {'href': 'http://localhost/nodes/8296384a-f026-4583-bb19-079c866abab8', 'rel': 'bookmark'}]}, {'uuid': '37fe2c3f-5446-493f-b44e-185744b12be4', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/37fe2c3f-5446-493f-b44e-185744b12be4', 'rel': 'self'}, {'href': 'http://localhost/nodes/37fe2c3f-5446-493f-b44e-185744b12be4', 'rel': 'bookmark'}]}, {'uuid': 'a6be61ef-f5ea-4b25-8695-cd166f43bdf2', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/a6be61ef-f5ea-4b25-8695-cd166f43bdf2', 'rel': 'self'}, {'href': 'http://localhost/nodes/a6be61ef-f5ea-4b25-8695-cd166f43bdf2', 'rel': 'bookmark'}]}, {'uuid': 'bbfabb73-3dcb-483e-aa39-717a41c6f25e', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/bbfabb73-3dcb-483e-aa39-717a41c6f25e', 'rel': 'self'}, {'href': 'http://localhost/nodes/bbfabb73-3dcb-483e-aa39-717a41c6f25e', 'rel': 'bookmark'}]}]} -GET: /v1/nodes {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-021027c3-3c74-43cd-ae8b-c911ee7ed5c5 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:45.109010+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {} -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue ... ok -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off_to_none -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off_to_none ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url ... ok -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async ... ok -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify -ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify ... ok -ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base -ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base ... ok -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-13df95aa-cbc4-42da-ab6b-b2fa3132a960 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'true'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console +Openstack-Request-Id: req-4c3c35a1-372f-4c48-9465-fe4619116183 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "9f1513e1-af1c-4d5f-83e0-b7152738f768", "created_at": "2025-02-07T21:28:45.001355+00:00", "updated_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", "cpus": "8", "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/9f1513e1-af1c-4d5f-83e0-b7152738f768", "rel": "self"}, {"href": "http://localhost/nodes/9f1513e1-af1c-4d5f-83e0-b7152738f768", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9f1513e1-af1c-4d5f-83e0-b7152738f768/ports", "rel": "self"}, {"href": "http://localhost/nodes/9f1513e1-af1c-4d5f-83e0-b7152738f768/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/3c55f713-07cf-4147-bee3-3a4212c3471d [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-c8099e42-773d-442a-832d-7a20937ea5e4 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system {'state': 'on'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-e5a222b5-4755-48f5-99de-c39573fa396d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "3c55f713-07cf-4147-bee3-3a4212c3471d", "created_at": "2025-02-07T21:28:45.074896+00:00", "updated_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", "cpus": "8", "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/3c55f713-07cf-4147-bee3-3a4212c3471d", "rel": "self"}, {"href": "http://localhost/nodes/3c55f713-07cf-4147-bee3-3a4212c3471d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3c55f713-07cf-4147-bee3-3a4212c3471d/ports", "rel": "self"}, {"href": "http://localhost/nodes/3c55f713-07cf-4147-bee3-3a4212c3471d/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/2fb5bbcb-1aa2-4f21-ba64-ececfee98825 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system?state=glow {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d1720b29-0cbe-4170-ae63-188bfb779233 +Openstack-Request-Id: req-28022a82-e00d-40ac-a18b-276d5a476030 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "2fb5bbcb-1aa2-4f21-ba64-ececfee98825", "created_at": "2025-02-07T21:28:45.182658+00:00", "updated_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", "cpus": "8", "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/2fb5bbcb-1aa2-4f21-ba64-ececfee98825", "rel": "self"}, {"href": "http://localhost/nodes/2fb5bbcb-1aa2-4f21-ba64-ececfee98825", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2fb5bbcb-1aa2-4f21-ba64-ececfee98825/ports", "rel": "self"}, {"href": "http://localhost/nodes/2fb5bbcb-1aa2-4f21-ba64-ececfee98825/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/e2a8128f-47b0-4833-9f9f-f74fcc43dcd9 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"error\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system {'state': 'on'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ff28d8de-a125-4091-ac73-082a67f0fef7 +Openstack-Request-Id: req-90972341-dada-4353-8ae5-abb127f5a6a0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "e2a8128f-47b0-4833-9f9f-f74fcc43dcd9", "created_at": "2025-02-07T21:28:45.310199+00:00", "updated_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", "cpus": "8", "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/e2a8128f-47b0-4833-9f9f-f74fcc43dcd9", "rel": "self"}, {"href": "http://localhost/nodes/e2a8128f-47b0-4833-9f9f-f74fcc43dcd9", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e2a8128f-47b0-4833-9f9f-f74fcc43dcd9/ports", "rel": "self"}, {"href": "http://localhost/nodes/e2a8128f-47b0-4833-9f9f-f74fcc43dcd9/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/0450344b-e042-4c8f-a0b3-59e31531c419 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-afd4ba60-8512-4c63-92ad-1a5a121dc334 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system?state=on {} +GOT:Response: 204 No Content +Openstack-Request-Id: req-3c6779c4-a260-4471-926b-71badb880eb3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "0450344b-e042-4c8f-a0b3-59e31531c419", "created_at": "2025-02-07T21:28:45.432433+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "error", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": "available", "links": [{"href": "http://localhost/v1/nodes/0450344b-e042-4c8f-a0b3-59e31531c419", "rel": "self"}, {"href": "http://localhost/nodes/0450344b-e042-4c8f-a0b3-59e31531c419", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0450344b-e042-4c8f-a0b3-59e31531c419/ports", "rel": "self"}, {"href": "http://localhost/nodes/0450344b-e042-4c8f-a0b3-59e31531c419/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/557ac30a-33b4-4868-8c9e-b1016d0742f8 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware ... ok -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_boot_mode -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_boot_mode ... ok -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_024_nodes_node_ident_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_024_nodes_node_ident_delete_reader ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_060_nodes_states_raid_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_060_nodes_states_raid_put_member ... ok -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-d643f85e-24d8-4278-9fe4-6366981ec6d7 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system {'state': 'on'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-e5c84a6d-915c-436e-a18c-9b13417d7aa5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-d643f85e-24d8-4278-9fe4-6366981ec6d7 +X-Openstack-Ironic-Api-Version: 1.63 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {'reason': 'fake_reason'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-0d98b0d8-55d5-496b-a122-088abe46fc57 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-f40736b0-2b20-4683-8402-7a9fa31a3a17 +X-Openstack-Ironic-Api-Version: 1.1 + +PUT: /v1/nodes/node-39/maintenance {'reason': 'fake_reason'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-471ceeb0-c01a-4525-a797-3d5f8d32e089 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.5 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {'reason': 'fake'} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-f40736b0-2b20-4683-8402-7a9fa31a3a17 +Openstack-Request-Id: req-bf70d86a-5c8f-4c4c-9e12-888e0f97f48c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {} +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_os_error +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_os_error ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_not_mac_or_datapath_id +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_not_mac_or_datapath_id ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_020_nodes_node_ident_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_020_nodes_node_ident_delete_admin ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg ... ok +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_014_owner_manager_can_get_node +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_014_owner_manager_can_get_node ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_hostname_missing +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_hostname_missing ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_059_nodes_states_raid_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_059_nodes_states_raid_put_admin ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full ... ok +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true_error +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true_error ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_mandatory +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_mandatory ... ok +ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter +ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire ... ok +ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties +ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_021_nodes_node_ident_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_021_nodes_node_ident_delete_member ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_valid_path +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_valid_path ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_port_id_missing +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_port_id_missing ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-48954874-bc9e-4bdc-9f4b-99a5a0577c10 +Openstack-Request-Id: req-e3d4c1b5-3184-41d7-b3b5-9db734095975 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-48954874-bc9e-4bdc-9f4b-99a5a0577c10 +Openstack-Request-Id: req-e3d4c1b5-3184-41d7-b3b5-9db734095975 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20364,14 +18104,14 @@ POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-73cc46de-385b-4522-ae48-bb45fe9cc902 +Openstack-Request-Id: req-a71ba319-ac5a-4423-810f-10aa7f4a0710 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-73cc46de-385b-4522-ae48-bb45fe9cc902 +Openstack-Request-Id: req-a71ba319-ac5a-4423-810f-10aa7f4a0710 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20380,14 +18120,14 @@ POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-47e842e0-f5a5-4922-a863-4e38b4120b3f +Openstack-Request-Id: req-d51e8be4-c8e5-4dbf-a465-6793489de5f4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-47e842e0-f5a5-4922-a863-4e38b4120b3f +Openstack-Request-Id: req-d51e8be4-c8e5-4dbf-a465-6793489de5f4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20396,384 +18136,283 @@ GET: /v1/nodes {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-43390426-3017-42e9-8212-742ad73a705a +Openstack-Request-Id: req-a89f637a-53d5-4d91-b680-e0880bec4f41 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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": "ca4705dd-b578-4a3e-9432-c5932bf51f6f", "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"}]}]} +{"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": "2b3cfcee-03e7-4253-9a7b-d1a99b704742", "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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-43390426-3017-42e9-8212-742ad73a705a +Openstack-Request-Id: req-a89f637a-53d5-4d91-b680-e0880bec4f41 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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": "ca4705dd-b578-4a3e-9432-c5932bf51f6f", "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"}]}]} +{"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": "2b3cfcee-03e7-4253-9a7b-d1a99b704742", "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"}]}]} API ACL Testing Path get /v1/nodes GET: /v1/nodes {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cdce4501-b838-4a25-8f2d-aa29512d4b5e +Openstack-Request-Id: req-62266b87-a973-468e-beb5-dddcf01ce8a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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": "2b9b1c68-5547-4d24-8438-c67bebec98b8", "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"}]}]} -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_014_owner_manager_can_get_node -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_014_owner_manager_can_get_node ... ok -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method ... ok -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found ... ok -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_secure -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_secure ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES ... ok -ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails -ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_deprecated -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_deprecated ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance ... ok -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete ... ok -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full ... ok -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix_invalid -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix_invalid ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found ... ok -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_noneness -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_noneness ... ok -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-f4d33aa3-2ac2-483c-8e20-5595464514f2 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "557ac30a-33b4-4868-8c9e-b1016d0742f8", "created_at": "2025-02-07T21:28:45.546684+00:00", "updated_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", "cpus": "8", "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/557ac30a-33b4-4868-8c9e-b1016d0742f8", "rel": "self"}, {"href": "http://localhost/nodes/557ac30a-33b4-4868-8c9e-b1016d0742f8", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/557ac30a-33b4-4868-8c9e-b1016d0742f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/557ac30a-33b4-4868-8c9e-b1016d0742f8/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/964a249e-b302-416f-bda0-c2009d42686b [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-7c092929-b025-4d84-8150-7a4170bca8e6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "964a249e-b302-416f-bda0-c2009d42686b", "created_at": "2025-02-07T21:28:45.669038+00:00", "updated_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", "cpus": "8", "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/964a249e-b302-416f-bda0-c2009d42686b", "rel": "self"}, {"href": "http://localhost/nodes/964a249e-b302-416f-bda0-c2009d42686b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/964a249e-b302-416f-bda0-c2009d42686b/ports", "rel": "self"}, {"href": "http://localhost/nodes/964a249e-b302-416f-bda0-c2009d42686b/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/cb304b74-1b6d-48ed-8914-4f52cfc2cf6f [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"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": "8d647dd9-ec71-4fd5-a1ec-637c13d27a54", "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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e908b2ad-78bd-40a6-8753-3fc45e3faeb4 +Openstack-Request-Id: req-62266b87-a973-468e-beb5-dddcf01ce8a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "cb304b74-1b6d-48ed-8914-4f52cfc2cf6f", "created_at": "2025-02-07T21:28:45.758575+00:00", "updated_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", "cpus": "8", "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/cb304b74-1b6d-48ed-8914-4f52cfc2cf6f", "rel": "self"}, {"href": "http://localhost/nodes/cb304b74-1b6d-48ed-8914-4f52cfc2cf6f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/cb304b74-1b6d-48ed-8914-4f52cfc2cf6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/cb304b74-1b6d-48ed-8914-4f52cfc2cf6f/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/570917c3-4c6c-476a-a865-6bc240b1f304 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"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": "8d647dd9-ec71-4fd5-a1ec-637c13d27a54", "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"}]}]} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-49be6ae4-6f9b-4205-ab92-d16c3982889f +Openstack-Request-Id: req-b977a086-d8f4-4050-a333-ee1255de2ed8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "570917c3-4c6c-476a-a865-6bc240b1f304", "created_at": "2025-02-07T21:28:45.857509+00:00", "updated_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", "cpus": "8", "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/570917c3-4c6c-476a-a865-6bc240b1f304", "rel": "self"}, {"href": "http://localhost/nodes/570917c3-4c6c-476a-a865-6bc240b1f304", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/570917c3-4c6c-476a-a865-6bc240b1f304/ports", "rel": "self"}, {"href": "http://localhost/nodes/570917c3-4c6c-476a-a865-6bc240b1f304/ports", "rel": "bookmark"}]} -PATCH: /v1/nodes/008b21c6-dedb-46b8-9f8f-7668ad54cd34 [{'path': '/instance_uuid', 'op': 'remove'}] -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_025_nodes_validate_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_025_nodes_validate_get_admin ... ok -ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_validation_fails -ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_validation_fails ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso_deprecated -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso_deprecated ... ok -ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap -ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap ... ok -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"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": "efe903aa-ecb7-46b0-841d-b39dfab02d6d", "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"}]}]} +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links ... ok +ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port +ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_015_owner_member_can_get_node ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_015_owner_member_can_get_node ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:45.109010+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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/?limit=3&associated=True {} -GOT:{'nodes': [{'uuid': '761fb326-c8a4-47c8-9897-adf2628e327d', 'instance_uuid': 'd912ecd6-4207-443d-8d4c-04bdb90dbaaa', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/761fb326-c8a4-47c8-9897-adf2628e327d', 'rel': 'self'}, {'href': 'http://localhost/nodes/761fb326-c8a4-47c8-9897-adf2628e327d', 'rel': 'bookmark'}]}, {'uuid': 'dac492e5-e820-4e69-bcaf-bb9eb3e90d96', 'instance_uuid': 'a68d44f3-9704-4cbf-9b1c-0de07dc2204b', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/dac492e5-e820-4e69-bcaf-bb9eb3e90d96', 'rel': 'self'}, {'href': 'http://localhost/nodes/dac492e5-e820-4e69-bcaf-bb9eb3e90d96', 'rel': 'bookmark'}]}, {'uuid': '03481071-a544-4eb7-8de1-911cb53c808f', 'instance_uuid': '4117ed4f-ea96-4305-9c27-54377a0667ae', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/03481071-a544-4eb7-8de1-911cb53c808f', 'rel': 'self'}, {'href': 'http://localhost/nodes/03481071-a544-4eb7-8de1-911cb53c808f', '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=03481071-a544-4eb7-8de1-911cb53c808f'} -GET: /v1/nodes/detail?limit=3&associated=true {} -GOT:{'nodes': [{'uuid': '5a74f78c-e360-4e11-b2f9-b20d474fe74a', 'created_at': '2025-02-07T21:28:46.012398+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': 'd98504b3-fb43-47a2-8708-3de1d59083f8', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/5a74f78c-e360-4e11-b2f9-b20d474fe74a', 'rel': 'self'}, {'href': 'http://localhost/nodes/5a74f78c-e360-4e11-b2f9-b20d474fe74a', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/5a74f78c-e360-4e11-b2f9-b20d474fe74a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/5a74f78c-e360-4e11-b2f9-b20d474fe74a/ports', 'rel': 'bookmark'}]}, {'uuid': '8f15a5d6-5ef3-4ea9-b437-60b40bd38c7b', 'created_at': '2025-02-07T21:28:46.017158+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': 'd1148c49-58b5-4990-b9b3-0a82fbd7352b', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/8f15a5d6-5ef3-4ea9-b437-60b40bd38c7b', 'rel': 'self'}, {'href': 'http://localhost/nodes/8f15a5d6-5ef3-4ea9-b437-60b40bd38c7b', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/8f15a5d6-5ef3-4ea9-b437-60b40bd38c7b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8f15a5d6-5ef3-4ea9-b437-60b40bd38c7b/ports', 'rel': 'bookmark'}]}, {'uuid': 'ff160376-f933-43b7-9b47-6aa2a669f585', 'created_at': '2025-02-07T21:28:46.021891+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': '7bd1082a-831e-4ae4-8140-b16b2f06ba98', 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/ff160376-f933-43b7-9b47-6aa2a669f585', 'rel': 'self'}, {'href': 'http://localhost/nodes/ff160376-f933-43b7-9b47-6aa2a669f585', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/ff160376-f933-43b7-9b47-6aa2a669f585/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ff160376-f933-43b7-9b47-6aa2a669f585/ports', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=ff160376-f933-43b7-9b47-6aa2a669f585'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_060_nodes_states_raid_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_060_nodes_states_raid_put_member ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_with_optional +ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_with_optional ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields ... ok +ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config +ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node ... ok +ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client +ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_custom_fields +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_custom_fields ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name ... ok +ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_empty +ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_empty ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_skip_missing +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_skip_missing ... ok +ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_exception +ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_exception ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_022_nodes_node_ident_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_022_nodes_node_ident_delete_observer ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_061_nodes_states_raid_put_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_061_nodes_states_raid_put_observer ... ok -ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped -ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up -ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_clear_job_queue -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_clear_job_queue ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_failed -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_failed ... ok -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_retreive_and_set -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_retreive_and_set ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed ... ok -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data -ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data ... ok -ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync -ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort ... ok -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_unsupported -ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_unsupported ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift ... ok -ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history -ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_missing -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_missing ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default -ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_config -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_config ... ok -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_026_nodes_validate_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_026_nodes_validate_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_062_nodes_states_console_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_062_nodes_states_console_get_admin ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_016_owner_reader_can_get_node ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_016_owner_reader_can_get_node ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver ... ok -ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_disaled -ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_disaled ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_iso -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_iso ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false -ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false ... ok -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device_from_driver_internal_info -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device_from_driver_internal_info ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:42.964836+00:00', 'updated_at': None, 'clean_step': {}, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': 'flat', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'class1', 'target_power_state': None, 'target_provision_state': None, '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'}]} -POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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 +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps ... ok +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties ... ok +ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value +ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume ... ok +ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state +ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone ... ok +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource ... ok +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps_skip_missing +ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps_skip_missing ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name ... ok +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_already_present +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_already_present ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume ... ok +Error while running foo: bar. +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_023_nodes_validate_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_023_nodes_validate_get_admin ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found ... ok +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_062_nodes_states_console_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_062_nodes_states_console_get_admin ... ok +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config ... ok +ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance +ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_017_lessee_admin_can_get_node +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_017_lessee_admin_can_get_node ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix ... ok +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-20663c12-80df-47ca-b905-b6fb68e12bbe +Openstack-Request-Id: req-a9936237-0ddc-491f-bcc1-b8cff02f3c8a X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "d087709f-2ade-4bd3-8c6f-48eb71c2b756", "created_at": "2024-01-06T15:33:58.039302+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/d087709f-2ade-4bd3-8c6f-48eb71c2b756", "rel": "self"}, {"href": "http://localhost/nodes/d087709f-2ade-4bd3-8c6f-48eb71c2b756", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d087709f-2ade-4bd3-8c6f-48eb71c2b756/ports", "rel": "self"}, {"href": "http://localhost/nodes/d087709f-2ade-4bd3-8c6f-48eb71c2b756/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d087709f-2ade-4bd3-8c6f-48eb71c2b756/states", "rel": "self"}, {"href": "http://localhost/nodes/d087709f-2ade-4bd3-8c6f-48eb71c2b756/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d087709f-2ade-4bd3-8c6f-48eb71c2b756/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d087709f-2ade-4bd3-8c6f-48eb71c2b756/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d087709f-2ade-4bd3-8c6f-48eb71c2b756/volume", "rel": "self"}, {"href": "http://localhost/nodes/d087709f-2ade-4bd3-8c6f-48eb71c2b756/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/9a48b29b-bd57-4f81-948e-ce217ad5903b [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-9c6fba40-c4f2-4ba8-8d51-b4f21230f1de +Openstack-Request-Id: req-1f1fca54-d5ac-47be-a5b9-481fdd9651cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.15 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-055a15d6-c67e-4f47-8023-12a00f08774a +Openstack-Request-Id: req-7d052231-3596-46b6-855b-9618e508e7c4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/nodes/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {'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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:58.845396+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", "cpus": "8", "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"}]} +PATCH: /v1/nodes/node-57.1 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c3c8edc1-005d-498e-9703-dc0cb6f14042 +Openstack-Request-Id: req-182b12e7-c3fa-4352-86c3-2a7d062f0b9c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -POST: /v1/nodes/volume/connectors {'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\": \"\"}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {'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 +X-Openstack-Ironic-Api-Version: 1.5 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:59.398666+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", "cpus": "8", "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"}]} +PATCH: /v1/nodes/node-57.1.json [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6785a94f-f027-45e8-94fb-419aca2f287a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-721f0584-5444-45e1-a1d0-fd1005b99c26 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -POST: /v1/nodes/node-109/vendor_passthru/test {'foo': 'bar'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-1024bbf0-dc3b-4dd9-aa12-6fdad1d746a3 +Openstack-Request-Id: req-11bd2af8-c877-477b-81c8-a1688fdec37e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 - -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test -GOT:Response: 202 Accepted -Openstack-Request-Id: req-32d4e3e6-c36e-48b3-b54f-a337fc68673c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {} -GOT:foo -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} -GOT:{'foo': 'bar'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} -GOT:{'foo': 'bar'} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:33:59.843478+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", "cpus": "8", "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"}]} +PATCH: /v1/nodes/050d95ef-5a07-490c-9ebc-e43c65867d74 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid ... ok +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok ... ok +GOT:{'portgroups': [{'uuid': '6850e51c-b455-4427-bbca-875fbb91d488', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/6850e51c-b455-4427-bbca-875fbb91d488', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6850e51c-b455-4427-bbca-875fbb91d488', 'rel': 'bookmark'}]}, {'uuid': '7e5c592f-fb78-4dd7-90f4-1f36fcecfa1d', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/7e5c592f-fb78-4dd7-90f4-1f36fcecfa1d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7e5c592f-fb78-4dd7-90f4-1f36fcecfa1d', 'rel': 'bookmark'}]}, {'uuid': '4872e1d7-fd73-4b2a-8f04-217a6ef9a7cc', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/4872e1d7-fd73-4b2a-8f04-217a6ef9a7cc', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4872e1d7-fd73-4b2a-8f04-217a6ef9a7cc', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups?fields=address&limit=2 {} +GOT:{'portgroups': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/c582a100-4630-4ce0-89b5-460348a2e63d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c582a100-4630-4ce0-89b5-460348a2e63d', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/92ce649b-9149-4826-9f8f-0f13fe86e305', 'rel': 'self'}, {'href': 'http://localhost/portgroups/92ce649b-9149-4826-9f8f-0f13fe86e305', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=92ce649b-9149-4826-9f8f-0f13fe86e305'} +GET: /v1/portgroups/?fields=address,properties {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-23c96011-8144-485a-b341-199b10e084b6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {'test_key': 'test_value'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-e64925fb-4a54-4d12-9dba-f9593ad3a48e +Openstack-Request-Id: req-2a6741ae-ed1d-45d5-ba93-2041919f7641 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync ... ok -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.25 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=uuid,spongebob {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-92c20dcd-4e3b-42aa-a1e2-2b9a0bf5a5de +Openstack-Request-Id: req-4e9c187d-53f7-40b4-af12-00bee2ce7198 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.38 -{"uuid": "008b21c6-dedb-46b8-9f8f-7668ad54cd34", "created_at": "2025-02-07T21:28:46.134116+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", "cpus": "8", "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/008b21c6-dedb-46b8-9f8f-7668ad54cd34", "rel": "self"}, {"href": "http://localhost/nodes/008b21c6-dedb-46b8-9f8f-7668ad54cd34", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/008b21c6-dedb-46b8-9f8f-7668ad54cd34/ports", "rel": "self"}, {"href": "http://localhost/nodes/008b21c6-dedb-46b8-9f8f-7668ad54cd34/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/008b21c6-dedb-46b8-9f8f-7668ad54cd34/states", "rel": "self"}, {"href": "http://localhost/nodes/008b21c6-dedb-46b8-9f8f-7668ad54cd34/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/008b21c6-dedb-46b8-9f8f-7668ad54cd34/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/008b21c6-dedb-46b8-9f8f-7668ad54cd34/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/008b21c6-dedb-46b8-9f8f-7668ad54cd34/volume", "rel": "self"}, {"href": "http://localhost/nodes/008b21c6-dedb-46b8-9f8f-7668ad54cd34/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/017e2fd2-5430-4555-b41a-2eed3d353c71 [{'path': '/instance_uuid', 'op': 'remove'}] -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T15:33:59.029274+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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?fields=address,extra {} +GOT:{'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'}]} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-db67949b-525f-4515-bda1-c40bd52f591d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.39 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"017e2fd2-5430-4555-b41a-2eed3d353c71\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} -PATCH: /v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,mode {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-81e4e620-8029-4bec-84b6-d7be94d48069 +Openstack-Request-Id: req-ffda7157-375e-4166-8ea9-73cf9097f19b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "created_at": "2025-02-07T21:28:47.018951+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:46.465730+00:00', 'updated_at': None, 'automated_clean': False, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:46.933352+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:46.933352+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_noop -ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_noop ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list ... ok -ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_error_severity -ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_error_severity ... ok -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi ... ok -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_017_lessee_admin_can_get_node -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_017_lessee_admin_can_get_node ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_sensors_data -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_sensors_data ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible ... ok -ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_user -ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_user ... ok +X-Openstack-Ironic-Api-Version: 1.25 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4.json {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T15:33:59.955369+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T15:34:00.181651+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'pg.json', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T15:34:00.449303+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'pg.1', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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/0d51be90-f7d4-4789-b0d4-caeaa877c367 {} +GOT:{'uuid': '0d51be90-f7d4-4789-b0d4-caeaa877c367', 'created_at': '2024-01-06T15:34:00.711698+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/0d51be90-f7d4-4789-b0d4-caeaa877c367', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0d51be90-f7d4-4789-b0d4-caeaa877c367', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/0d51be90-f7d4-4789-b0d4-caeaa877c367/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0d51be90-f7d4-4789-b0d4-caeaa877c367/ports', 'rel': 'bookmark'}]} +GET: /v1/portgroups/0d51be90-f7d4-4789-b0d4-caeaa877c367 {} +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done ... ok +ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_cleaning +ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_cleaning ... ok +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off_to_none +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off_to_none ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1905f580-2310-4b07-b753-fe515970d884 +Openstack-Request-Id: req-7f0e9348-1144-44d3-9b26-baf1bdbbc150 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20782,7 +18421,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f609e0a8-74e6-433d-a2c3-2e9d849b0733 +Openstack-Request-Id: req-d80fa4d1-f0d4-44e8-b9c7-717e0d5457fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20791,7 +18430,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-35bdb7be-e2fb-40d2-910e-15c4610d52ee +Openstack-Request-Id: req-4688ed98-904c-4267-82bd-953996cbf657 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20800,7 +18439,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-aa6a9bfb-82cd-4354-8e10-8fb3f09bd397 +Openstack-Request-Id: req-99df7116-0b38-4ca4-a5b6-78dd3cf743cd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20809,7 +18448,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-55409032-ccde-4280-96c1-db5979d52b1d +Openstack-Request-Id: req-4d5723b2-a43b-45e4-bb85-9ca8fbcfa262 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20818,7 +18457,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4a59a98e-7764-4f9f-837b-5308593d1d27 +Openstack-Request-Id: req-a0039cbd-2f6e-49e3-80a9-d712a629ea7a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20827,7 +18466,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-00a411bc-2907-4a33-a1b3-6e5af0051060 +Openstack-Request-Id: req-38c3b8f1-4426-4c1e-be73-7de3a1eb5682 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20836,7 +18475,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6e90ad38-0f8a-4c40-b99f-3d184ded63ba +Openstack-Request-Id: req-b40cd186-20b2-4f16-9a45-e4ae50a880fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20845,7 +18484,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e270d18d-5c7b-4ada-acec-30324262bb2b +Openstack-Request-Id: req-e1ee2d65-cbba-4314-bf38-3b62dfe0b34e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20854,7 +18493,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a0ffba05-59d3-4472-9da3-6029bb0a3840 +Openstack-Request-Id: req-b44b2eea-c97a-4b9e-af59-d3b6bb8bdc9c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20863,7 +18502,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'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-6439bedb-3490-40d7-9789-5d460c397426 +Openstack-Request-Id: req-35c5bfe2-0471-4f3f-83e4-8e4b5493abfa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20872,7 +18511,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'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-180ec00e-d606-4597-a664-688459a4af23 +Openstack-Request-Id: req-ea7812c5-41a4-49e2-b798-a0e30376d6e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20881,7 +18520,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'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-a22fa9fb-950e-49f7-9061-539bc2143391 +Openstack-Request-Id: req-5cf40945-d3e9-4c9c-8d7c-2c18963005b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -20890,1169 +18529,1437 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d339a3e7-ed39-4d62-98f0-bfca476a8c18 +Openstack-Request-Id: req-b95eea4b-7767-42bc-8175-5036e049ab4c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_063_nodes_states_console_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_063_nodes_states_console_get_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_clear_flag -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_clear_flag ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed_idrac5 -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed_idrac5 ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing ... ok -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean ... ok -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_manual_management -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_manual_management ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait ... ok -GOT:Response: 503 Service Unavailable +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1393aa96-63c0-41ff-90ac-d9f3c73a6dac +Openstack-Request-Id: req-656cd901-afe5-49c6-9126-ca8bc3c371e6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1393aa96-63c0-41ff-90ac-d9f3c73a6dac +Openstack-Request-Id: req-09ccefb8-2573-43a1-b94e-be2902f7ad52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 503 Service Unavailable +{"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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-bae1bee1-9d0e-4a1c-b947-5b9053b9522c +Openstack-Request-Id: req-4b6fcb77-fcf5-4391-b944-6ec914804f02 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/nodes?sort_key=resource_class {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-bae1bee1-9d0e-4a1c-b947-5b9053b9522c +Openstack-Request-Id: req-56598867-edff-4a7b-9c91-ea2435ec7a6a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.20 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/nodes?associated=false {} +GOT:{'nodes': [{'uuid': '28d29b54-e935-4a23-ae6f-462bbec19d80', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/28d29b54-e935-4a23-ae6f-462bbec19d80', 'rel': 'self'}, {'href': 'http://localhost/nodes/28d29b54-e935-4a23-ae6f-462bbec19d80', 'rel': 'bookmark'}]}, {'uuid': '853d0a50-daf4-4fdd-8b89-85e62091e7de', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/853d0a50-daf4-4fdd-8b89-85e62091e7de', 'rel': 'self'}, {'href': 'http://localhost/nodes/853d0a50-daf4-4fdd-8b89-85e62091e7de', 'rel': 'bookmark'}]}, {'uuid': 'b78171d8-bef2-472b-b1ba-10c569c14834', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/b78171d8-bef2-472b-b1ba-10c569c14834', 'rel': 'self'}, {'href': 'http://localhost/nodes/b78171d8-bef2-472b-b1ba-10c569c14834', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=FALSE {} +GOT:{'nodes': [{'uuid': '28d29b54-e935-4a23-ae6f-462bbec19d80', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/28d29b54-e935-4a23-ae6f-462bbec19d80', 'rel': 'self'}, {'href': 'http://localhost/nodes/28d29b54-e935-4a23-ae6f-462bbec19d80', 'rel': 'bookmark'}]}, {'uuid': '853d0a50-daf4-4fdd-8b89-85e62091e7de', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/853d0a50-daf4-4fdd-8b89-85e62091e7de', 'rel': 'self'}, {'href': 'http://localhost/nodes/853d0a50-daf4-4fdd-8b89-85e62091e7de', 'rel': 'bookmark'}]}, {'uuid': 'b78171d8-bef2-472b-b1ba-10c569c14834', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/b78171d8-bef2-472b-b1ba-10c569c14834', 'rel': 'self'}, {'href': 'http://localhost/nodes/b78171d8-bef2-472b-b1ba-10c569c14834', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=False&limit=2 {} +GOT:{'nodes': [{'uuid': '48ed4676-5f15-4cf8-99cd-1c827bcf7c67', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/48ed4676-5f15-4cf8-99cd-1c827bcf7c67', 'rel': 'self'}, {'href': 'http://localhost/nodes/48ed4676-5f15-4cf8-99cd-1c827bcf7c67', 'rel': 'bookmark'}]}, {'uuid': '176d909d-1887-4904-b795-b4c1fd3eff77', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/176d909d-1887-4904-b795-b4c1fd3eff77', 'rel': 'self'}, {'href': 'http://localhost/nodes/176d909d-1887-4904-b795-b4c1fd3eff77', '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=176d909d-1887-4904-b795-b4c1fd3eff77'} +GET: /v1/nodes/validate?node=spam {} +GOT:{} +GET: /v1/nodes/validate?node=spam {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-0f6c01b1-bf7f-471e-abb7-8d1e5ddab84a +Openstack-Request-Id: req-4c9a600c-35e8-4dc2-9fb8-31038ca3296c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/nodes/validate?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{} +GET: /v1/nodes/validate?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} +GOT:{'connectors': [{'uuid': 'ea90fe45-b38f-4a7a-803d-ea9b661c361f', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/ea90fe45-b38f-4a7a-803d-ea9b661c361f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ea90fe45-b38f-4a7a-803d-ea9b661c361f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'b34afb2f-d5df-4677-829d-25df3d6663a0', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/b34afb2f-d5df-4677-829d-25df3d6663a0', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/b34afb2f-d5df-4677-829d-25df3d6663a0', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 {} +GOT:{'connectors': [{'uuid': 'ea90fe45-b38f-4a7a-803d-ea9b661c361f', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/ea90fe45-b38f-4a7a-803d-ea9b661c361f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ea90fe45-b38f-4a7a-803d-ea9b661c361f', '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=ea90fe45-b38f-4a7a-803d-ea9b661c361f'} +GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0f6c01b1-bf7f-471e-abb7-8d1e5ddab84a +Openstack-Request-Id: req-d10e21c9-b6fe-41a4-90b9-c3f944b75b1f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} +GET: /v1/nodes/volume/connectors {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-76dc1d3e-a1af-4092-b370-2bc75ca6f78e +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_024_nodes_validate_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_024_nodes_validate_get_member ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_063_nodes_states_console_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_063_nodes_states_console_get_member ... ok +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_018_lessee_manager_can_get_node +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_018_lessee_manager_can_get_node ... ok +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_boot_mode +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_boot_mode ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks ... ok +ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_deploy +ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_deploy ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false ... ok +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one ... ok +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data ... ok +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_secure +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_secure ... ok +GOT:Response: 202 Accepted +Openstack-Request-Id: req-52d69def-44df-4afc-a63e-8e066bf99556 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-76dc1d3e-a1af-4092-b370-2bc75ca6f78e +X-Openstack-Ironic-Api-Version: 1.1 + +PUT: /v1/nodes/node-39/maintenance {} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-7866e4fb-1a76-427c-826e-48f810882265 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.5 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-95324434-d5a6-4344-92da-2e6d47ba8aee +Openstack-Request-Id: req-2fcc66f5-79eb-4e8c-b449-901cd4feaa75 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/ports/?limit=3 {} +GOT:{'ports': [{'uuid': '031916e0-1da4-4dd9-8719-56d2a2c7c641', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/031916e0-1da4-4dd9-8719-56d2a2c7c641', 'rel': 'self'}, {'href': 'http://localhost/ports/031916e0-1da4-4dd9-8719-56d2a2c7c641', 'rel': 'bookmark'}]}, {'uuid': '177ba690-1ee9-43aa-bc00-e192257314f0', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/177ba690-1ee9-43aa-bc00-e192257314f0', 'rel': 'self'}, {'href': 'http://localhost/ports/177ba690-1ee9-43aa-bc00-e192257314f0', 'rel': 'bookmark'}]}, {'uuid': '818f3a4a-9bd8-44ef-9fa8-8fbd68bf2d19', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/818f3a4a-9bd8-44ef-9fa8-8fbd68bf2d19', 'rel': 'self'}, {'href': 'http://localhost/ports/818f3a4a-9bd8-44ef-9fa8-8fbd68bf2d19', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=818f3a4a-9bd8-44ef-9fa8-8fbd68bf2d19'} +GET: /v1/ports?fields=address,uuid {} +GOT:{'ports': [{'uuid': '146fe38c-3f33-43b4-8365-049f276119df', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/146fe38c-3f33-43b4-8365-049f276119df', 'rel': 'self'}, {'href': 'http://localhost/ports/146fe38c-3f33-43b4-8365-049f276119df', 'rel': 'bookmark'}]}, {'uuid': '3419f8dd-4430-4eb9-9d75-6d829c4a6912', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/3419f8dd-4430-4eb9-9d75-6d829c4a6912', 'rel': 'self'}, {'href': 'http://localhost/ports/3419f8dd-4430-4eb9-9d75-6d829c4a6912', 'rel': 'bookmark'}]}, {'uuid': 'e99c7ffd-7fac-48ef-97d8-a5cddfbf8ce3', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/e99c7ffd-7fac-48ef-97d8-a5cddfbf8ce3', 'rel': 'self'}, {'href': 'http://localhost/ports/e99c7ffd-7fac-48ef-97d8-a5cddfbf8ce3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=e99c7ffd-7fac-48ef-97d8-a5cddfbf8ce3'} +GET: /v1/ports {} +GOT:{'ports': [{'uuid': '50e12ca0-f19d-46a5-8d76-a33a22b84313', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/50e12ca0-f19d-46a5-8d76-a33a22b84313', 'rel': 'self'}, {'href': 'http://localhost/ports/50e12ca0-f19d-46a5-8d76-a33a22b84313', 'rel': 'bookmark'}]}, {'uuid': '4ee8d61b-38d5-4f17-b045-c6a8e37135a2', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/4ee8d61b-38d5-4f17-b045-c6a8e37135a2', 'rel': 'self'}, {'href': 'http://localhost/ports/4ee8d61b-38d5-4f17-b045-c6a8e37135a2', 'rel': 'bookmark'}]}, {'uuid': 'b3600180-7e19-47ac-9595-2eeb73fd96ca', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/b3600180-7e19-47ac-9595-2eeb73fd96ca', 'rel': 'self'}, {'href': 'http://localhost/ports/b3600180-7e19-47ac-9595-2eeb73fd96ca', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=b3600180-7e19-47ac-9595-2eeb73fd96ca'} +GET: /v1/ports/detail {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:33:59.955232+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}]} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-95324434-d5a6-4344-92da-2e6d47ba8aee +Openstack-Request-Id: req-d2c999fb-16d5-4995-867e-0e5fe246d939 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/ports/detail?node=test-node {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-d97a6a08-a2c5-4064-bcc1-67690eef6453 +Openstack-Request-Id: req-af14d0b3-ce8b-49eb-93e1-b945917df269 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/ports/detail?node=test-node {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:00.685418+00:00', 'updated_at': None, '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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/ports?detail=True {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:00.927715+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}]} +GET: /v1/ports {} +GOT:{'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 {} +GOT:{'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?sort_key=pxe_enabled {} +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation_owned +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation_owned ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 ... ok +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_064_nodes_states_console_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_064_nodes_states_console_put_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_025_nodes_validate_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_025_nodes_validate_get_observer ... ok +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_noneness +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_noneness ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_019_lessee_member_can_get_node +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_019_lessee_member_can_get_node ... ok +"max-count" must be a positive value. +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed ... ok +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data_ipv6 +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data_ipv6 ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource ... ok +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_retreive_and_set +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_retreive_and_set ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level ... ok +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists +ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d97a6a08-a2c5-4064-bcc1-67690eef6453 +Openstack-Request-Id: req-dd8b93e0-b1a0-4743-b1d9-f7d051590787 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} -GOT:Response: 503 Service Unavailable +X-Openstack-Ironic-Api-Version: 1.50 +{"uuid": "050d95ef-5a07-490c-9ebc-e43c65867d74", "created_at": "2024-01-06T15:34:00.360876+00:00", "updated_at": null, "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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": 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/050d95ef-5a07-490c-9ebc-e43c65867d74", "rel": "self"}, {"href": "http://localhost/nodes/050d95ef-5a07-490c-9ebc-e43c65867d74", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/050d95ef-5a07-490c-9ebc-e43c65867d74/ports", "rel": "self"}, {"href": "http://localhost/nodes/050d95ef-5a07-490c-9ebc-e43c65867d74/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/050d95ef-5a07-490c-9ebc-e43c65867d74/states", "rel": "self"}, {"href": "http://localhost/nodes/050d95ef-5a07-490c-9ebc-e43c65867d74/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/050d95ef-5a07-490c-9ebc-e43c65867d74/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/050d95ef-5a07-490c-9ebc-e43c65867d74/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/050d95ef-5a07-490c-9ebc-e43c65867d74/volume", "rel": "self"}, {"href": "http://localhost/nodes/050d95ef-5a07-490c-9ebc-e43c65867d74/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/2426698d-a469-4c43-aed5-10c1976e3944 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b0b61ef7-07a5-4eb7-ad1e-183db7905bd7 +Openstack-Request-Id: req-72b0b01a-1bb0-4216-b4be-af7976e00864 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +X-Openstack-Ironic-Api-Version: 1.50 +{"uuid": "2426698d-a469-4c43-aed5-10c1976e3944", "created_at": "2024-01-06T15:34:00.857549+00:00", "updated_at": null, "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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": 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/2426698d-a469-4c43-aed5-10c1976e3944", "rel": "self"}, {"href": "http://localhost/nodes/2426698d-a469-4c43-aed5-10c1976e3944", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2426698d-a469-4c43-aed5-10c1976e3944/ports", "rel": "self"}, {"href": "http://localhost/nodes/2426698d-a469-4c43-aed5-10c1976e3944/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2426698d-a469-4c43-aed5-10c1976e3944/states", "rel": "self"}, {"href": "http://localhost/nodes/2426698d-a469-4c43-aed5-10c1976e3944/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2426698d-a469-4c43-aed5-10c1976e3944/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2426698d-a469-4c43-aed5-10c1976e3944/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2426698d-a469-4c43-aed5-10c1976e3944/volume", "rel": "self"}, {"href": "http://localhost/nodes/2426698d-a469-4c43-aed5-10c1976e3944/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/26aa0c43-7063-490c-b028-e48af02ceea5 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-b0b61ef7-07a5-4eb7-ad1e-183db7905bd7 +Openstack-Request-Id: req-58b46ae6-10be-43fc-8985-4a1684f251b3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} -GOT:Response: 503 Service Unavailable +X-Openstack-Ironic-Api-Version: 1.50 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update owner of node \\\"26aa0c43-7063-490c-b028-e48af02ceea5\\\" while it is allocated to an allocation with an owner.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/a6a0b647-c95b-4a14-bcb2-b69c2224d723 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-d503075f-6161-4720-98b3-63f5492e775d +Openstack-Request-Id: req-5cb33647-b53b-476e-a7db-084db2183193 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +X-Openstack-Ironic-Api-Version: 1.47 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/8c3e666c-ebf5-4e4b-9e07-3b607ec319ee [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_065_nodes_states_console_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_065_nodes_states_console_put_member ... ok +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap ... ok +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_unsupported +ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_unsupported ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_026_nodes_maintenance_put_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_026_nodes_maintenance_put_admin ... ok +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d503075f-6161-4720-98b3-63f5492e775d +Openstack-Request-Id: req-b977a086-d8f4-4050-a333-ee1255de2ed8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_027_nodes_validate_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_027_nodes_validate_get_reader ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_error -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_error ... ok +{"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": "efe903aa-ecb7-46b0-841d-b39dfab02d6d", "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"}]}]} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-aad56c5e-0fe4-4db2-bf4f-a3ef0fcd059e +Openstack-Request-Id: req-20bca846-d822-4c36-8b40-fc96e8e10ed3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "created_at": "2025-02-07T21:28:47.018951+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +{"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": "daa558a5-a1b4-4d40-9679-3972ab77e8c6", "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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a788f072-81b3-4fcd-aa03-9a6df4d11813 +Openstack-Request-Id: req-20bca846-d822-4c36-8b40-fc96e8e10ed3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "created_at": "2025-02-07T21:28:47.018951+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] +{"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": "daa558a5-a1b4-4d40-9679-3972ab77e8c6", "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"}]}]} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f48f0a35-da19-4a30-b0c9-6199d0316863 +Openstack-Request-Id: req-d2c652c2-7b11-4658-901f-6b2db27e92cd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "created_at": "2025-02-07T21:28:47.018951+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "92a3983d-9d41-4719-b877-382f47a70d46", "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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a63720c6-e629-4da3-a99a-b66a75a595fa +Openstack-Request-Id: req-d2c652c2-7b11-4658-901f-6b2db27e92cd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "created_at": "2025-02-07T21:28:47.018951+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93 [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "92a3983d-9d41-4719-b877-382f47a70d46", "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"}]}]} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6f98cd42-f5a1-4632-99dd-299c06fdf520 +Openstack-Request-Id: req-c35064d5-7f7c-4516-9dba-4dbf59fc9bd1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "created_at": "2025-02-07T21:28:47.018951+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "2b9f64b3-0a5f-46b8-bad3-53a54c6b7bad", "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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ccfc220f-cbd5-4881-9eb8-eb76c426c5e1 +Openstack-Request-Id: req-c35064d5-7f7c-4516-9dba-4dbf59fc9bd1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "created_at": "2025-02-07T21:28:47.018951+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:47.461089+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:47.869936+00:00', 'updated_at': None, 'automated_clean': True, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:48.158924+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_supported_boot_devices -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_still_processing -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_still_processing ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_064_nodes_states_console_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_064_nodes_states_console_put_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_not_supported -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_not_supported ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists ... ok -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_018_lessee_manager_can_get_node -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_018_lessee_manager_can_get_node ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_028_nodes_maintenance_put_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_028_nodes_maintenance_put_admin ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_fix_broken_interface -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_fix_broken_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_known_good_state -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_known_good_state ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor ... ok -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_completed -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_completed ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url ... ok -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_reset_idrac -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_reset_idrac ... ok +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "2b9f64b3-0a5f-46b8-bad3-53a54c6b7bad", "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"}]}]} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a53bba56-8125-486f-b10e-95bbb8fdd64c +Openstack-Request-Id: req-da0c812c-828a-43c9-903c-4505fdc15f8a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "created_at": "2025-02-07T21:28:47.018951+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "self"}, {"href": "http://localhost/nodes/5eae83a9-5344-4f11-aef5-4ac59e5dbd93/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/30706abe-1430-4a1d-a828-08407214618c [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "6d2c9a0c-5069-4dd2-9305-f14d9541fb18", "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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8a2b4047-e9ed-430a-9465-e4a25b20ddca +Openstack-Request-Id: req-da0c812c-828a-43c9-903c-4505fdc15f8a X-Openstack-Ironic-Api-Maximum-Version: 1.80 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/30706abe-1430-4a1d-a828-08407214618c [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "6d2c9a0c-5069-4dd2-9305-f14d9541fb18", "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"}]}]} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4fe18af1-5240-4f97-9062-07f0ca0168f8 +Openstack-Request-Id: req-22622f93-56ef-4e16-a09b-33d704268010 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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/30706abe-1430-4a1d-a828-08407214618c [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "37da6b33-ad3c-497c-9031-b1903e525475", "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"}]}]} +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_020_lessee_reader_can_get_node +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_020_lessee_reader_can_get_node ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok ... ok +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned_forbidden ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version ... ok +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_already_present +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_already_present ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad ... ok +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresourceINFO [alembic.runtime.migration] Context impl SQLiteImpl. + ... INFO [alembic.runtime.migration] Will assume non-transactional DDL. +ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay_software +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay_software ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_066_nodes_states_console_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_066_nodes_states_console_put_observer ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated ... ok +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail ... ok +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_empty +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_empty ... ok +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-217b349b-ff67-4c9c-8b0f-534e781134d7 +Openstack-Request-Id: req-7d9dcc51-6a65-4033-b517-94b362d56b68 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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/30706abe-1430-4a1d-a828-08407214618c [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-091bb2d8-bd47-46de-a5ce-a093884fd995 +Openstack-Request-Id: req-7d9dcc51-6a65-4033-b517-94b362d56b68 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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/30706abe-1430-4a1d-a828-08407214618c [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-17001144-5730-4ef9-9230-4a48aea749f8 +Openstack-Request-Id: req-17297326-7a6f-4647-a675-77548e44673a X-Openstack-Ironic-Api-Maximum-Version: 1.80 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/30706abe-1430-4a1d-a828-08407214618c [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d7060f8f-ee98-43c7-8634-6174dbe34b31 +Openstack-Request-Id: req-17297326-7a6f-4647-a675-77548e44673a X-Openstack-Ironic-Api-Maximum-Version: 1.80 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/30706abe-1430-4a1d-a828-08407214618c [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-df7b8ea7-12a5-4202-8164-f982b1839502 +Openstack-Request-Id: req-7c659241-c8b2-4dcd-9f4f-7ec6daa55f4d X-Openstack-Ironic-Api-Maximum-Version: 1.80 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/30706abe-1430-4a1d-a828-08407214618c [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-aba9473a-0441-4b9f-ad8d-6f677be84dd2 +Openstack-Request-Id: req-7c659241-c8b2-4dcd-9f4f-7ec6daa55f4d X-Openstack-Ironic-Api-Maximum-Version: 1.80 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/873df08f-de19-4049-a135-a68ccc29b298 [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_065_nodes_states_console_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_065_nodes_states_console_put_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:48.158924+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/20031bf9-4336-4af8-ac96-059b25661be7 {} -GOT:{'uuid': '20031bf9-4336-4af8-ac96-059b25661be7', 'created_at': '2025-02-07T21:28:48.566646+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': 'bios', 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/20031bf9-4336-4af8-ac96-059b25661be7', 'rel': 'self'}, {'href': 'http://localhost/nodes/20031bf9-4336-4af8-ac96-059b25661be7', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/20031bf9-4336-4af8-ac96-059b25661be7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/20031bf9-4336-4af8-ac96-059b25661be7/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/20031bf9-4336-4af8-ac96-059b25661be7/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/20031bf9-4336-4af8-ac96-059b25661be7/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/20031bf9-4336-4af8-ac96-059b25661be7/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/20031bf9-4336-4af8-ac96-059b25661be7/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/20031bf9-4336-4af8-ac96-059b25661be7/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/20031bf9-4336-4af8-ac96-059b25661be7/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/f51e4bf3-156e-47a4-a2e0-23886c11541b {} -GOT:{'uuid': 'f51e4bf3-156e-47a4-a2e0-23886c11541b', 'created_at': '2025-02-07T21:28:48.701569+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': 'uefi', 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/f51e4bf3-156e-47a4-a2e0-23886c11541b', 'rel': 'self'}, {'href': 'http://localhost/nodes/f51e4bf3-156e-47a4-a2e0-23886c11541b', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/f51e4bf3-156e-47a4-a2e0-23886c11541b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f51e4bf3-156e-47a4-a2e0-23886c11541b/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f51e4bf3-156e-47a4-a2e0-23886c11541b/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f51e4bf3-156e-47a4-a2e0-23886c11541b/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/f51e4bf3-156e-47a4-a2e0-23886c11541b/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/f51e4bf3-156e-47a4-a2e0-23886c11541b/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/f51e4bf3-156e-47a4-a2e0-23886c11541b/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/f51e4bf3-156e-47a4-a2e0-23886c11541b/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export_failed -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export_failed ... ok -ACL Test GOT Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cdce4501-b838-4a25-8f2d-aa29512d4b5e +Openstack-Request-Id: req-afb3e53a-869b-4439-b568-536fc5095d7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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": "2b9b1c68-5547-4d24-8438-c67bebec98b8", "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"}]}]} -API ACL Testing Path get /v1/nodes -GET: /v1/nodes {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e7a0cef7-59a9-415c-bdee-61af43cb0b8e +Openstack-Request-Id: req-afb3e53a-869b-4439-b568-536fc5095d7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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": "5cdc454e-67f3-4a1f-b1ff-909bff35b383", "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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e7a0cef7-59a9-415c-bdee-61af43cb0b8e +Openstack-Request-Id: req-f8a33318-b92c-4270-a9f6-d6ee881a634f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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": "5cdc454e-67f3-4a1f-b1ff-909bff35b383", "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"}]}]} -API ACL Testing Path get /v1/nodes -GET: /v1/nodes {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-25329cf0-e23b-4e97-92c5-2675f419be4d +Openstack-Request-Id: req-f8a33318-b92c-4270-a9f6-d6ee881a634f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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": "80266b64-7e58-48ef-8bee-066f87681460", "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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-25329cf0-e23b-4e97-92c5-2675f419be4d +Openstack-Request-Id: req-868a1df7-9595-4d48-b501-910a655b72b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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": "80266b64-7e58-48ef-8bee-066f87681460", "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"}]}]} -API ACL Testing Path get /v1/nodes -GET: /v1/nodes {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9ec3f74a-aa99-4a2b-b188-d2ade44758c5 +Openstack-Request-Id: req-868a1df7-9595-4d48-b501-910a655b72b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "3cf11023-f536-4b9f-9f28-74b8ac99a665", "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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9ec3f74a-aa99-4a2b-b188-d2ade44758c5 +Openstack-Request-Id: req-516cee07-c67f-4e77-a32f-00798411a247 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "3cf11023-f536-4b9f-9f28-74b8ac99a665", "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"}]}]} -API ACL Testing Path get /v1/nodes -GET: /v1/nodes {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-52d744dc-5b66-4c28-bc52-c5d5315ea3d9 +Openstack-Request-Id: req-516cee07-c67f-4e77-a32f-00798411a247 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "049c4909-66e0-4166-989e-4a33c6f74a2f", "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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-52d744dc-5b66-4c28-bc52-c5d5315ea3d9 +Openstack-Request-Id: req-a57c7c24-f0bf-41aa-9a89-8670e0691d53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "049c4909-66e0-4166-989e-4a33c6f74a2f", "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"}]}]} -API ACL Testing Path get /v1/nodes -GET: /v1/nodes {} -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_hidden_in_lower_version ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_019_lessee_member_can_get_node -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_019_lessee_member_can_get_node ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_029_nodes_maintenance_put_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_029_nodes_maintenance_put_member ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device ... ok -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee_old_api ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_not_drac -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_not_drac ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_field_with_broken_interface -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_field_with_broken_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_066_nodes_states_console_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_066_nodes_states_console_put_observer ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_null_field -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_null_field ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_no_task_monitor_url -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_no_task_monitor_url ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found ... ok -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_030_nodes_maintenance_put_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_030_nodes_maintenance_put_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_020_lessee_reader_can_get_node -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_020_lessee_reader_can_get_node ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:48.999979+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:48.999979+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:49.424897+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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?instance_uuid=58c0783a-fbed-4380-80bd-05058c73b416 {} -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_locked -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_locked ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on ... ok -ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_indicator_state -ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_indicator_state ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_notfound -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_notfound ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_067_nodes_vendor_passthru_methods_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_067_nodes_vendor_passthru_methods_get_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume ... ok -ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators -ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators ... ok -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-885dadaa-945b-4092-a9de-65ec1b3b15e1 +Openstack-Request-Id: req-a57c7c24-f0bf-41aa-9a89-8670e0691d53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.65 -{"uuid": "873df08f-de19-4049-a135-a68ccc29b298", "created_at": "2025-02-07T21:28:48.752795+00:00", "updated_at": null, "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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_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/873df08f-de19-4049-a135-a68ccc29b298", "rel": "self"}, {"href": "http://localhost/nodes/873df08f-de19-4049-a135-a68ccc29b298", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/873df08f-de19-4049-a135-a68ccc29b298/ports", "rel": "self"}, {"href": "http://localhost/nodes/873df08f-de19-4049-a135-a68ccc29b298/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/873df08f-de19-4049-a135-a68ccc29b298/states", "rel": "self"}, {"href": "http://localhost/nodes/873df08f-de19-4049-a135-a68ccc29b298/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/873df08f-de19-4049-a135-a68ccc29b298/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/873df08f-de19-4049-a135-a68ccc29b298/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/873df08f-de19-4049-a135-a68ccc29b298/volume", "rel": "self"}, {"href": "http://localhost/nodes/873df08f-de19-4049-a135-a68ccc29b298/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/45d04090-7b45-42bb-97c4-89e19ccf35d2 [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6321a5f2-d2e4-49e1-8589-fd073a6686d6 +Openstack-Request-Id: req-3e199692-f148-44ef-b626-c542731e0d78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/5d339c7e-eb35-4991-816d-57f4b7fbbb8f [{'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.1ad', '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 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_027_nodes_maintenance_put_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_027_nodes_maintenance_put_member ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_too_few_physical_disks +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_too_few_physical_disks ... ok +GOT:{'uuid': '0d51be90-f7d4-4789-b0d4-caeaa877c367', 'created_at': '2024-01-06T15:34:00.711698+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/0d51be90-f7d4-4789-b0d4-caeaa877c367', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0d51be90-f7d4-4789-b0d4-caeaa877c367', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/0d51be90-f7d4-4789-b0d4-caeaa877c367/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0d51be90-f7d4-4789-b0d4-caeaa877c367/ports', 'rel': 'bookmark'}]} +GET: /portgroups/0d51be90-f7d4-4789-b0d4-caeaa877c367 {} +GOT:{'uuid': '0d51be90-f7d4-4789-b0d4-caeaa877c367', 'created_at': '2024-01-06T15:34:00.711698+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/0d51be90-f7d4-4789-b0d4-caeaa877c367', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0d51be90-f7d4-4789-b0d4-caeaa877c367', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/0d51be90-f7d4-4789-b0d4-caeaa877c367/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0d51be90-f7d4-4789-b0d4-caeaa877c367/ports', 'rel': 'bookmark'}]} +GET: /v1/portgroups {} +GOT:{'portgroups': [{'uuid': '368db685-c343-4054-933c-9546f1b109bd', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/368db685-c343-4054-933c-9546f1b109bd', 'rel': 'self'}, {'href': 'http://localhost/portgroups/368db685-c343-4054-933c-9546f1b109bd', 'rel': 'bookmark'}]}, {'uuid': '8abbb28a-0e66-429a-b683-c135e6dc3295', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/8abbb28a-0e66-429a-b683-c135e6dc3295', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8abbb28a-0e66-429a-b683-c135e6dc3295', 'rel': 'bookmark'}]}, {'uuid': '0e089b51-95eb-4f4a-aca2-fe0b2fa3a489', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/0e089b51-95eb-4f4a-aca2-fe0b2fa3a489', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0e089b51-95eb-4f4a-aca2-fe0b2fa3a489', 'rel': 'bookmark'}]}, {'uuid': '88febde9-2b9d-4f99-97b9-c6faad42bd30', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/88febde9-2b9d-4f99-97b9-c6faad42bd30', 'rel': 'self'}, {'href': 'http://localhost/portgroups/88febde9-2b9d-4f99-97b9-c6faad42bd30', 'rel': 'bookmark'}]}, {'uuid': 'd8f541c7-f156-437b-8d4b-d1edd636732d', 'address': '52:54:00:cf:2d:34', 'name': 'portgroup4', 'links': [{'href': 'http://localhost/v1/portgroups/d8f541c7-f156-437b-8d4b-d1edd636732d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d8f541c7-f156-437b-8d4b-d1edd636732d', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups {} +GOT:{'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?address=aa:bb:cc:dd:ee:f1 {} +GOT:{'portgroups': [{'uuid': '15db101b-688c-4a40-9fa7-86de04126621', 'address': 'aa:bb:cc:dd:ee:f1', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/15db101b-688c-4a40-9fa7-86de04126621', 'rel': 'self'}, {'href': 'http://localhost/portgroups/15db101b-688c-4a40-9fa7-86de04126621', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups?address=invalid-mac-format {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b458d534-a0fa-4eba-a601-5e64967d70ae +Openstack-Request-Id: req-25a94b66-c2cb-464b-aadc-f5efe12d62b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.66 -{"uuid": "5d339c7e-eb35-4991-816d-57f4b7fbbb8f", "created_at": "2025-02-07T21:28:49.521857+00:00", "updated_at": null, "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", "cpus": "8", "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/5d339c7e-eb35-4991-816d-57f4b7fbbb8f", "rel": "self"}, {"href": "http://localhost/nodes/5d339c7e-eb35-4991-816d-57f4b7fbbb8f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5d339c7e-eb35-4991-816d-57f4b7fbbb8f/ports", "rel": "self"}, {"href": "http://localhost/nodes/5d339c7e-eb35-4991-816d-57f4b7fbbb8f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5d339c7e-eb35-4991-816d-57f4b7fbbb8f/states", "rel": "self"}, {"href": "http://localhost/nodes/5d339c7e-eb35-4991-816d-57f4b7fbbb8f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5d339c7e-eb35-4991-816d-57f4b7fbbb8f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5d339c7e-eb35-4991-816d-57f4b7fbbb8f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5d339c7e-eb35-4991-816d-57f4b7fbbb8f/volume", "rel": "self"}, {"href": "http://localhost/nodes/5d339c7e-eb35-4991-816d-57f4b7fbbb8f/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/7c00e1c3-96f4-45d8-9810-a12740d5e5ac [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_custom -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_custom ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_clean -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_clean ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_031_nodes_maintenance_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_031_nodes_maintenance_delete_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_021_third_party_admin_cannot_get_node -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_021_third_party_admin_cannot_get_node ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_old_api ... ok -ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state -ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_member ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_deploy -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_deploy ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_wrong_format -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_wrong_format ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version ... ok -ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties -ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_032_nodes_maintenance_delete_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_032_nodes_maintenance_delete_member ... ok -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"} +GET: /v1/portgroups?address=aa:bb:cc:dd:ee:ff {} +GOT:{'portgroups': []} +GET: /v1/portgroups {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-aad8897e-5c7b-4eb6-8524-7f86f2958928 +Openstack-Request-Id: req-eeff0034-6a78-4793-b68a-c0abf03194a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "9a040bf5-adbc-4e6a-a5e2-800d7d56a4bb", "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"}]}]} -ACL Test GOT Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.14 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/portgroups/8419237c-0256-463c-bf51-fabc5e77d2f5/ports {} +GOT:{'ports': [{'uuid': '6b1f2a13-bfd1-42eb-a199-e47743385770', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/6b1f2a13-bfd1-42eb-a199-e47743385770', 'rel': 'self'}, {'href': 'http://localhost/ports/6b1f2a13-bfd1-42eb-a199-e47743385770', 'rel': 'bookmark'}]}, {'uuid': 'abf6672a-2017-40a4-9efa-2d3b59b02e1b', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/abf6672a-2017-40a4-9efa-2d3b59b02e1b', 'rel': 'self'}, {'href': 'http://localhost/ports/abf6672a-2017-40a4-9efa-2d3b59b02e1b', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups/8419237c-0256-463c-bf51-fabc5e77d2f5/ports/detail {} +GOT:{'ports': [{'uuid': '6b1f2a13-bfd1-42eb-a199-e47743385770', 'created_at': '2024-01-06T15:34:02.322265+00:00', 'updated_at': None, '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': None, 'pxe_enabled': True, 'links': [{'href': 'http://localhost/v1/ports/6b1f2a13-bfd1-42eb-a199-e47743385770', 'rel': 'self'}, {'href': 'http://localhost/ports/6b1f2a13-bfd1-42eb-a199-e47743385770', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '8419237c-0256-463c-bf51-fabc5e77d2f5'}, {'uuid': 'abf6672a-2017-40a4-9efa-2d3b59b02e1b', 'created_at': '2024-01-06T15:34:02.324251+00:00', 'updated_at': None, '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': None, 'pxe_enabled': True, 'links': [{'href': 'http://localhost/v1/ports/abf6672a-2017-40a4-9efa-2d3b59b02e1b', 'rel': 'self'}, {'href': 'http://localhost/ports/abf6672a-2017-40a4-9efa-2d3b59b02e1b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '8419237c-0256-463c-bf51-fabc5e77d2f5'}]} +GET: /v1/portgroups/8419237c-0256-463c-bf51-fabc5e77d2f5/ports?limit=1 {} +GOT:{'ports': [{'uuid': '6b1f2a13-bfd1-42eb-a199-e47743385770', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/6b1f2a13-bfd1-42eb-a199-e47743385770', 'rel': 'self'}, {'href': 'http://localhost/ports/6b1f2a13-bfd1-42eb-a199-e47743385770', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=6b1f2a13-bfd1-42eb-a199-e47743385770'} +GET: /v1/portgroups/8419237c-0256-463c-bf51-fabc5e77d2f5/ports/d5ad07f2-6464-4520-85d2-11e0d8ae25c7 {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/portgroups/8419237c-0256-463c-bf51-fabc5e77d2f5/ports/25a3c79c-8958-4764-a825-6877c33ed52c {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-aad8897e-5c7b-4eb6-8524-7f86f2958928 +Openstack-Request-Id: req-79aa5542-feb1-4473-997e-8a79326dd5a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "9a040bf5-adbc-4e6a-a5e2-800d7d56a4bb", "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"}]}]} -API ACL Testing Path get /v1/nodes -GET: /v1/nodes {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true ... ok +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad ... ok +GOT:{'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'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6a8ce17e-3f24-4385-b911-ed7a167a88cf +Openstack-Request-Id: req-de32c412-2861-4c87-b475-c17832549885 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "7d64730d-9ceb-48a1-9a6a-c0850f04eea7", "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"}]}]} -ACL Test GOT Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.31 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T15:34:01.307687+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/volume/targets {} +GOT:{'targets': [{'uuid': '6bacf766-3179-4494-9428-292d4396462b', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/6bacf766-3179-4494-9428-292d4396462b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6bacf766-3179-4494-9428-292d4396462b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'cdd1b9f2-8365-4293-ba61-558a1df3dcc2', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/cdd1b9f2-8365-4293-ba61-558a1df3dcc2', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/cdd1b9f2-8365-4293-ba61-558a1df3dcc2', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 {} +GOT:{'targets': [{'uuid': '6bacf766-3179-4494-9428-292d4396462b', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/6bacf766-3179-4494-9428-292d4396462b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6bacf766-3179-4494-9428-292d4396462b', '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=6bacf766-3179-4494-9428-292d4396462b'} +GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6a8ce17e-3f24-4385-b911-ed7a167a88cf +Openstack-Request-Id: req-3008bc8a-2bb6-4fb7-b42d-33d30fb2f2c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "7d64730d-9ceb-48a1-9a6a-c0850f04eea7", "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"}]}]} -API ACL Testing Path get /v1/nodes -GET: /v1/nodes {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} +GET: /v1/nodes/volume/targets {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=68a29c97-3eb1-4613-a9ab-6027a3999dae {} +GOT:{'node': {'uuid': '68a29c97-3eb1-4613-a9ab-6027a3999dae', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/68a29c97-3eb1-4613-a9ab-6027a3999dae', 'rel': 'self'}, {'href': 'http://localhost/nodes/68a29c97-3eb1-4613-a9ab-6027a3999dae', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'abcxyz', 'agent_token_required': True}} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=68a29c97-3eb1-4613-a9ab-6027a3999dae {} +GOT:{'node': {'uuid': '68a29c97-3eb1-4613-a9ab-6027a3999dae', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/68a29c97-3eb1-4613-a9ab-6027a3999dae', 'rel': 'self'}, {'href': 'http://localhost/nodes/68a29c97-3eb1-4613-a9ab-6027a3999dae', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'abcxyz', 'agent_token_required': True}} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=68a29c97-3eb1-4613-a9ab-6027a3999dae {} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_021_third_party_admin_cannot_get_node +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_021_third_party_admin_cannot_get_node ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_fast_deploy_lookup +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_fast_deploy_lookup ... ok +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_failed +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_failed ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume ... ok +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_broken_driver +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_broken_driver ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed ... ok +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_067_nodes_vendor_passthru_methods_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_067_nodes_vendor_passthru_methods_get_admin ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports ... ok +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found ... ok +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_028_nodes_maintenance_put_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_028_nodes_maintenance_put_observer ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_addresses +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_addresses ... ok +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-40c48070-2090-4354-83f1-2f490de2ff62 +Openstack-Request-Id: req-0119368f-8e10-4345-86db-5bd903715cf3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": []} -ACL Test GOT Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.50 +{"uuid": "8c3e666c-ebf5-4e4b-9e07-3b607ec319ee", "created_at": "2024-01-06T15:34:01.763903+00:00", "updated_at": null, "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", "cpus": "8", "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/8c3e666c-ebf5-4e4b-9e07-3b607ec319ee", "rel": "self"}, {"href": "http://localhost/nodes/8c3e666c-ebf5-4e4b-9e07-3b607ec319ee", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8c3e666c-ebf5-4e4b-9e07-3b607ec319ee/ports", "rel": "self"}, {"href": "http://localhost/nodes/8c3e666c-ebf5-4e4b-9e07-3b607ec319ee/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8c3e666c-ebf5-4e4b-9e07-3b607ec319ee/states", "rel": "self"}, {"href": "http://localhost/nodes/8c3e666c-ebf5-4e4b-9e07-3b607ec319ee/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8c3e666c-ebf5-4e4b-9e07-3b607ec319ee/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8c3e666c-ebf5-4e4b-9e07-3b607ec319ee/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8c3e666c-ebf5-4e4b-9e07-3b607ec319ee/volume", "rel": "self"}, {"href": "http://localhost/nodes/8c3e666c-ebf5-4e4b-9e07-3b607ec319ee/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/00bfee41-c9c3-4f17-8500-c9067aa7179e [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-40c48070-2090-4354-83f1-2f490de2ff62 +Openstack-Request-Id: req-dddda42e-833a-458a-abbc-d51bd1413729 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": []} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 {} +X-Openstack-Ironic-Api-Version: 1.50 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update owner of node \\\"00bfee41-c9c3-4f17-8500-c9067aa7179e\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} +PATCH: /v1/nodes/a5f7df22-0914-4ef5-afde-0378c8e9b491 [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8df5cdff-a632-4c8e-a7d3-a97907bb5185 +Openstack-Request-Id: req-d504490d-9385-4f91-8437-0b6441d979dd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-02-07T21:28:50.728171+00:00", "updated_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": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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"}]} -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked ... ok -ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_add_secret_token -ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_add_secret_token ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_clean -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_clean ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails ... ok +X-Openstack-Ironic-Api-Version: 1.48 +{"uuid": "a5f7df22-0914-4ef5-afde-0378c8e9b491", "created_at": "2024-01-06T15:34:02.530910+00:00", "updated_at": null, "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", "cpus": "8", "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/a5f7df22-0914-4ef5-afde-0378c8e9b491", "rel": "self"}, {"href": "http://localhost/nodes/a5f7df22-0914-4ef5-afde-0378c8e9b491", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a5f7df22-0914-4ef5-afde-0378c8e9b491/ports", "rel": "self"}, {"href": "http://localhost/nodes/a5f7df22-0914-4ef5-afde-0378c8e9b491/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a5f7df22-0914-4ef5-afde-0378c8e9b491/states", "rel": "self"}, {"href": "http://localhost/nodes/a5f7df22-0914-4ef5-afde-0378c8e9b491/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a5f7df22-0914-4ef5-afde-0378c8e9b491/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a5f7df22-0914-4ef5-afde-0378c8e9b491/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a5f7df22-0914-4ef5-afde-0378c8e9b491/volume", "rel": "self"}, {"href": "http://localhost/nodes/a5f7df22-0914-4ef5-afde-0378c8e9b491/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/46280292-01cb-4a9b-a5d0-65daf0dc0184 [{'path': '/protected', 'value': True, 'op': 'replace'}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-5fd62b9d-d33e-49ec-8366-3384526fba2b +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PATCH: /v1/nodes/ec690024-2644-4b3b-9c2c-ac1075776545 [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs +ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason ... ok +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_unsupported +ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_unsupported ... ok +ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file +ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail ... ok +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_022_owner_reader_can_get_their_node ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_022_owner_reader_can_get_their_node ... ok +ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock +ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed ... ok +ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string +ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string ... ok +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs_fail +ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs_fail ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create ... ok +ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes +ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_029_nodes_maintenance_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_029_nodes_maintenance_delete_admin ... ok +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_remove +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_remove ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_only_uuid +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_only_uuid ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state ... ok -GOT:{'nodes': [{'uuid': '25557557-cd9d-435d-8761-c377154c3794', 'instance_uuid': '58c0783a-fbed-4380-80bd-05058c73b416', 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/25557557-cd9d-435d-8761-c377154c3794', 'rel': 'self'}, {'href': 'http://localhost/nodes/25557557-cd9d-435d-8761-c377154c3794', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?instance_uuid=fake {} -GOT:Response: 400 Bad Request +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_023_owner_reader_cannot_get_other_node +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_023_owner_reader_cannot_get_other_node ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_custom +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_custom ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid ... ok +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_power_state +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_power_state ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_all +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_all ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_default +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_default ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_030_nodes_maintenance_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_030_nodes_maintenance_delete_member ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_uuid +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_uuid ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed ... ok +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_properties ... ok +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7240160b-0edb-479b-965a-ef2c1d752ab1 +Openstack-Request-Id: req-22622f93-56ef-4e16-a09b-33d704268010 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes?instance_uuid=18e5732a-6965-49c7-92ee-bbbde29e4652 {} -GOT:{'nodes': []} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:50.692237+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:50.692237+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:51.012051+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses ... ok -ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config -ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config ... ok -ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_is_agent_token_present -ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_is_agent_token_present ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "37da6b33-ad3c-497c-9031-b1903e525475", "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"}]}]} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8cfd034f-cbae-4723-bfb9-c9fc0569261d +Openstack-Request-Id: req-542799b1-29ac-49c2-b1a7-8c2bef425670 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.66 -{"uuid": "7c00e1c3-96f4-45d8-9810-a12740d5e5ac", "created_at": "2025-02-07T21:28:50.069040+00:00", "updated_at": null, "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", "cpus": "8", "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/7c00e1c3-96f4-45d8-9810-a12740d5e5ac", "rel": "self"}, {"href": "http://localhost/nodes/7c00e1c3-96f4-45d8-9810-a12740d5e5ac", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7c00e1c3-96f4-45d8-9810-a12740d5e5ac/ports", "rel": "self"}, {"href": "http://localhost/nodes/7c00e1c3-96f4-45d8-9810-a12740d5e5ac/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7c00e1c3-96f4-45d8-9810-a12740d5e5ac/states", "rel": "self"}, {"href": "http://localhost/nodes/7c00e1c3-96f4-45d8-9810-a12740d5e5ac/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7c00e1c3-96f4-45d8-9810-a12740d5e5ac/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7c00e1c3-96f4-45d8-9810-a12740d5e5ac/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7c00e1c3-96f4-45d8-9810-a12740d5e5ac/volume", "rel": "self"}, {"href": "http://localhost/nodes/7c00e1c3-96f4-45d8-9810-a12740d5e5ac/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/eaa13625-eb15-436d-a9a2-4a096e22b851 [{'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.1ad', '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 +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-517d649f-887e-44b4-8fac-9df0dbe63a77 +Openstack-Request-Id: req-542799b1-29ac-49c2-b1a7-8c2bef425670 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/d534bf19-0748-4e8d-802b-87a80a1ac72c [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": []} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-47545de1-6753-4aed-927a-858a37434c9f +Openstack-Request-Id: req-99a13727-2ed5-4378-8f99-45626184f29d X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/87a3c664-4d44-45cd-8834-662de6774ca4 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_deploy -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_deploy ... ok -ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_wipe_deploy_internal_info -ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_wipe_deploy_internal_info ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found ... ok -ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_empty -ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_empty ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_033_nodes_maintenance_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_033_nodes_maintenance_delete_reader ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_023_owner_reader_cannot_get_other_node -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_023_owner_reader_cannot_get_other_node ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase_ilo_error -ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase_ilo_error ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_070_nodes_vendor_passthru_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_070_nodes_vendor_passthru_get_admin ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_empty -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_empty ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info ... ok -ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value -ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_missing -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_missing ... ok -ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_no_token_info -ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_no_token_info ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_with_broken_interface -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_with_broken_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list ... ok -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:51.012051+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:51.406086+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:51.406086+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_dir_path_verify_ca -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_dir_path_verify_ca ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_field -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_field ... ok -ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_returns_project_id_if_present -ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_returns_project_id_if_present ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_missing -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_missing ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_034_nodes_management_boot_device_put_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_034_nodes_management_boot_device_put_admin ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2024-01-06T15:34:03.231357+00:00", "updated_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": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8df5cdff-a632-4c8e-a7d3-a97907bb5185 +Openstack-Request-Id: req-99a13727-2ed5-4378-8f99-45626184f29d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-02-07T21:28:50.728171+00:00", "updated_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": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2024-01-06T15:34:03.231357+00:00", "updated_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": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5b19219a-40dd-4ae0-86e4-aa14b60ac397 +Openstack-Request-Id: req-48e358ff-fac8-46b8-8890-5a321c5b6789 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5b19219a-40dd-4ae0-86e4-aa14b60ac397 +Openstack-Request-Id: req-48e358ff-fac8-46b8-8890-5a321c5b6789 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d74fb29c-ba52-4906-95aa-34500c5f079e +Openstack-Request-Id: req-40a43cf0-34e6-490e-a6f6-7f82730ad4fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-02-07T21:28:51.940240+00:00", "updated_at": "2025-02-07T21:28:51.951765+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "2c23fef3-5799-4c22-98da-6844cca5fb2d", "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "2c23fef3-5799-4c22-98da-6844cca5fb2d", "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"}]} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_071_nodes_vendor_passthru_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_071_nodes_vendor_passthru_get_member ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_file_path_verify_ca -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_file_path_verify_ca ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing -ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected ... ok +X-Openstack-Ironic-Api-Version: 1.48 +{"uuid": "ec690024-2644-4b3b-9c2c-ac1075776545", "created_at": "2024-01-06T15:34:03.214983+00:00", "updated_at": null, "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", "cpus": "8", "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/ec690024-2644-4b3b-9c2c-ac1075776545", "rel": "self"}, {"href": "http://localhost/nodes/ec690024-2644-4b3b-9c2c-ac1075776545", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ec690024-2644-4b3b-9c2c-ac1075776545/ports", "rel": "self"}, {"href": "http://localhost/nodes/ec690024-2644-4b3b-9c2c-ac1075776545/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ec690024-2644-4b3b-9c2c-ac1075776545/states", "rel": "self"}, {"href": "http://localhost/nodes/ec690024-2644-4b3b-9c2c-ac1075776545/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ec690024-2644-4b3b-9c2c-ac1075776545/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ec690024-2644-4b3b-9c2c-ac1075776545/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ec690024-2644-4b3b-9c2c-ac1075776545/volume", "rel": "self"}, {"href": "http://localhost/nodes/ec690024-2644-4b3b-9c2c-ac1075776545/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/c450fb83-8128-497f-94b2-89d279c40865 [{'op': 'remove', 'path': '/protected'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-bfe87a54-6c74-46d0-8465-bb6ca8ce55b0 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.48 +{"uuid": "c450fb83-8128-497f-94b2-89d279c40865", "created_at": "2024-01-06T15:34:03.675730+00:00", "updated_at": null, "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", "cpus": "8", "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/c450fb83-8128-497f-94b2-89d279c40865", "rel": "self"}, {"href": "http://localhost/nodes/c450fb83-8128-497f-94b2-89d279c40865", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c450fb83-8128-497f-94b2-89d279c40865/ports", "rel": "self"}, {"href": "http://localhost/nodes/c450fb83-8128-497f-94b2-89d279c40865/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c450fb83-8128-497f-94b2-89d279c40865/states", "rel": "self"}, {"href": "http://localhost/nodes/c450fb83-8128-497f-94b2-89d279c40865/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c450fb83-8128-497f-94b2-89d279c40865/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c450fb83-8128-497f-94b2-89d279c40865/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c450fb83-8128-497f-94b2-89d279c40865/volume", "rel": "self"}, {"href": "http://localhost/nodes/c450fb83-8128-497f-94b2-89d279c40865/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/320c611e-a7e6-4ea0-b587-6c35b6f769dd [{'path': '/protected', 'value': 'True', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-2c1ed2c5-c8ba-43c7-bcd0-231b1b127a4f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.48 +{"uuid": "320c611e-a7e6-4ea0-b587-6c35b6f769dd", "created_at": "2024-01-06T15:34:04.127062+00:00", "updated_at": null, "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", "cpus": "8", "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/320c611e-a7e6-4ea0-b587-6c35b6f769dd", "rel": "self"}, {"href": "http://localhost/nodes/320c611e-a7e6-4ea0-b587-6c35b6f769dd", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/320c611e-a7e6-4ea0-b587-6c35b6f769dd/ports", "rel": "self"}, {"href": "http://localhost/nodes/320c611e-a7e6-4ea0-b587-6c35b6f769dd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/320c611e-a7e6-4ea0-b587-6c35b6f769dd/states", "rel": "self"}, {"href": "http://localhost/nodes/320c611e-a7e6-4ea0-b587-6c35b6f769dd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/320c611e-a7e6-4ea0-b587-6c35b6f769dd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/320c611e-a7e6-4ea0-b587-6c35b6f769dd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/320c611e-a7e6-4ea0-b587-6c35b6f769dd/volume", "rel": "self"}, {"href": "http://localhost/nodes/320c611e-a7e6-4ea0-b587-6c35b6f769dd/volume", "rel": "bookmark"}]} +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_raw_smaller +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_raw_smaller ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_070_nodes_vendor_passthru_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_070_nodes_vendor_passthru_get_admin ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_async +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_async ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size ... ok +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_supported_power_states +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_supported_power_states ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string_invalid ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_ignore_malformed_address +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_ignore_malformed_address ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_024_lessee_reader_can_get_their_node ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_024_lessee_reader_can_get_their_node ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_not_supported -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_not_supported ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_oem_missing -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_oem_missing ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_filter_by_project -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_filter_by_project ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty ... ok -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail ... ok -GOT:Response: 200 OK +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy_forbidden +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy_forbidden ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service ... ok +GOT:{'ports': [{'uuid': '16fd8440-1f4d-4fde-bd41-cf74b54e131c', 'created_at': '2024-01-06T15:34:01.385201+00:00', 'updated_at': None, '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': None, 'pxe_enabled': False, 'links': [{'href': 'http://localhost/v1/ports/16fd8440-1f4d-4fde-bd41-cf74b54e131c', 'rel': 'self'}, {'href': 'http://localhost/ports/16fd8440-1f4d-4fde-bd41-cf74b54e131c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None}, {'uuid': 'a7c782e1-dd89-41e1-b4e9-eaa2155d492b', 'created_at': '2024-01-06T15:34:01.387314+00:00', 'updated_at': None, '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': None, 'pxe_enabled': True, 'links': [{'href': 'http://localhost/v1/ports/a7c782e1-dd89-41e1-b4e9-eaa2155d492b', 'rel': 'self'}, {'href': 'http://localhost/ports/a7c782e1-dd89-41e1-b4e9-eaa2155d492b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None}]} +GET: /v1/ports/detail?sort_key=pxe_enabled {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-aa435793-b262-484e-a70b-ede90b93de8a +Openstack-Request-Id: req-29f3a33b-19a7-4beb-b458-da00144c0b86 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"cat": "meow"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru {'foo': 'bar'} +X-Openstack-Ironic-Api-Version: 1.18 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/ports?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1b82842b-190f-405a-9c48-61052d19c327 +Openstack-Request-Id: req-49993b7a-6112-42e8-a24c-3af816aad1f2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} -GOT:Response: 204 No Content -Location: http://localhost/v1/nodes/node-39/traits/CUSTOM_3 -Openstack-Request-Id: req-bc9095a2-f230-4ca4-9241-9381cbccce05 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} +GET: /v1/ports?detail=False&fields=internal_info {} +GOT:{'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'}]}]} +GET: /v1/ports?detail=True {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-f55a38fc-fb85-418d-8e24-93268c59f39e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 - -PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} +GET: /v1/ports/detail?node=test-node&node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'ports': []} +GET: /v1/ports {} +GOT:{'ports': []} +GET: /v1/ports?node=test-node {} +GOT:{'ports': [{'uuid': 'd3dc0ec1-4f7e-473e-84af-707fb93cceb8', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/d3dc0ec1-4f7e-473e-84af-707fb93cceb8', 'rel': 'self'}, {'href': 'http://localhost/ports/d3dc0ec1-4f7e-473e-84af-707fb93cceb8', 'rel': 'bookmark'}]}, {'uuid': '2c51e700-e17d-4bbe-bcbd-22198090750f', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/2c51e700-e17d-4bbe-bcbd-22198090750f', 'rel': 'self'}, {'href': 'http://localhost/ports/2c51e700-e17d-4bbe-bcbd-22198090750f', 'rel': 'bookmark'}]}, {'uuid': '9f1a966f-3827-4eca-a25d-017be2877005', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/9f1a966f-3827-4eca-a25d-017be2877005', 'rel': 'self'}, {'href': 'http://localhost/ports/9f1a966f-3827-4eca-a25d-017be2877005', 'rel': 'bookmark'}]}]} +GET: /v1/ports?node=test-node {} +GOT:{'ports': []} +GET: /v1/ports?node=test-node {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-ec8737ba-4106-4813-91c6-0576458b0319 +Openstack-Request-Id: req-a8c91136-4ccd-4f98-a14f-e488f6a5a710 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/ports?node=test-node {} +GOT:{'ports': [{'uuid': '912fc7fc-c923-47bd-b4f2-f8a9e69466b7', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/912fc7fc-c923-47bd-b4f2-f8a9e69466b7', 'rel': 'self'}, {'href': 'http://localhost/ports/912fc7fc-c923-47bd-b4f2-f8a9e69466b7', 'rel': 'bookmark'}]}, {'uuid': '0ff1591b-b9b3-409c-9141-077e053dd75a', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/0ff1591b-b9b3-409c-9141-077e053dd75a', 'rel': 'self'}, {'href': 'http://localhost/ports/0ff1591b-b9b3-409c-9141-077e053dd75a', 'rel': 'bookmark'}]}, {'uuid': 'a7ca3b1a-0e1a-4e98-93a1-9419892d2a2e', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/a7ca3b1a-0e1a-4e98-93a1-9419892d2a2e', 'rel': 'self'}, {'href': 'http://localhost/ports/a7ca3b1a-0e1a-4e98-93a1-9419892d2a2e', 'rel': 'bookmark'}]}]} +GET: /v1/ports/detail?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123&node=node-name {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:03.944860+00:00', 'updated_at': None, '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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/ports/detail?portgroup=fooname {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:04.166011+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}]} +GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:04.453429+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}]} +GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4&node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c1f8d3f5-2274-49d0-b556-ed9dd5979faa +Openstack-Request-Id: req-ef46f10b-ea58-4e1b-8272-7f828acb483e X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_031_nodes_maintenance_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_031_nodes_maintenance_delete_observer ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step ... ok +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin ... ok +ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned +ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_071_nodes_vendor_passthru_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_071_nodes_vendor_passthru_get_member ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_no_restrict_lookup +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_no_restrict_lookup ... ok +ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings +ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin_no_match +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin_no_match ... ok +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_fail +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_fail ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_dynamic +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_dynamic ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_025_lessee_reader_cant_get_other_node +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_025_lessee_reader_cant_get_other_node ... ok +ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned +ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail ... ok +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_not_reached +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_not_reached ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_not_found +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_not_found ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_072_nodes_vendor_passthru_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_072_nodes_vendor_passthru_get_observer ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_032_nodes_management_boot_device_put_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_032_nodes_management_boot_device_put_admin ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_fast_track +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_fast_track ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields ... ok +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_timeout +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_timeout ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved ... ok +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e4a65cb8-d68a-4ece-a567-4d6ad750007e +Openstack-Request-Id: req-4c79c85c-8909-4299-ad0f-cde6c087cf48 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 {} -GOT:Response: 405 Method Not Allowed -Allow: DELETE, GET, PATCH, POST +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2024-01-06T15:34:04.423170+00:00", "updated_at": "2024-01-06T15:34:04.443767+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "7c7a088d-438f-48df-ade9-56dbdae5e5a1", "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "7c7a088d-438f-48df-ade9-56dbdae5e5a1", "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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} -PUT: /v1/nodes/node-39/traits/bad_trait {} -GOT:Response: 400 Bad Request +Openstack-Request-Id: req-4c79c85c-8909-4299-ad0f-cde6c087cf48 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2024-01-06T15:34:04.423170+00:00", "updated_at": "2024-01-06T15:34:04.443767+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "7c7a088d-438f-48df-ade9-56dbdae5e5a1", "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "7c7a088d-438f-48df-ade9-56dbdae5e5a1", "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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-dc97adb4-1e88-4f1e-be27-767e4ba47a02 +Openstack-Request-Id: req-3063d022-42ca-4e59-9d88-fb8478384d79 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/node-39/traits/CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c0dadcdd-3bb0-4e5e-9d2f-e577a317f2f6 +Openstack-Request-Id: req-3063d022-42ca-4e59-9d88-fb8478384d79 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/nodes/node-39/traits -GOT:Response: 204 No Content -Openstack-Request-Id: req-1f4069ce-a086-4e7a-8624-c91cf53e3680 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-69f9b5c7-9028-470d-a0bb-de497c588989 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 - -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_nothing_provided +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_nothing_provided ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_026_third_party_admin_cant_get_node +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_026_third_party_admin_cant_get_node ... ok +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_validate +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_validate ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_backing_file_present +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_backing_file_present ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_in_deploywait +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_in_deploywait ... ok +GET: /v1/portgroups/59d63e05-d226-42aa-89d2-8313abfcbaa3/ports {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0843f3ab-5229-4a3b-aab7-bd34f61632a9 +Openstack-Request-Id: req-b1e8b552-be26-4c15-aacb-0f4597f02ce4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/nodes/node-39/traits -GOT:Response: 204 No Content -Openstack-Request-Id: req-6cdb2ac0-9ce0-4d06-a150-dc90a821c4a0 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} +GET: /v1/portgroups?sort_key=uuid {} +GOT:{'portgroups': [{'uuid': '7b35a8be-af8d-4a3d-848a-698de92a2a29', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/7b35a8be-af8d-4a3d-848a-698de92a2a29', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7b35a8be-af8d-4a3d-848a-698de92a2a29', 'rel': 'bookmark'}]}, {'uuid': '7bf00f34-6460-4b00-94d1-c2ccb3a07877', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/7bf00f34-6460-4b00-94d1-c2ccb3a07877', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7bf00f34-6460-4b00-94d1-c2ccb3a07877', 'rel': 'bookmark'}]}, {'uuid': '83a9c553-6aff-4644-95b5-69a93f6118bd', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/83a9c553-6aff-4644-95b5-69a93f6118bd', 'rel': 'self'}, {'href': 'http://localhost/portgroups/83a9c553-6aff-4644-95b5-69a93f6118bd', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups?sort_key=mode {} +GOT:{'portgroups': [{'uuid': '335445ad-50a0-4556-ad64-802513e57618', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/335445ad-50a0-4556-ad64-802513e57618', 'rel': 'self'}, {'href': 'http://localhost/portgroups/335445ad-50a0-4556-ad64-802513e57618', 'rel': 'bookmark'}]}, {'uuid': 'c69e5b91-b591-41e4-aa2f-583a4992ddf5', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/c69e5b91-b591-41e4-aa2f-583a4992ddf5', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c69e5b91-b591-41e4-aa2f-583a4992ddf5', 'rel': 'bookmark'}]}, {'uuid': 'd23255fd-faf7-4e4b-9704-2957f7ed06c8', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/d23255fd-faf7-4e4b-9704-2957f7ed06c8', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d23255fd-faf7-4e4b-9704-2957f7ed06c8', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups?sort_key=foo {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-9cf9eb95-241a-4e78-9c13-642831672af4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 - -DELETE: /v1/nodes/node-39/traits/CUSTOM_1 -GOT:Response: 204 No Content -Openstack-Request-Id: req-fe5078be-3a22-4b5d-8c46-4e54d2573554 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/portgroups?sort_key=extra {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-72a07f96-0a0f-4e78-90cf-209f07087956 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 - -DELETE: /v1/nodes/node-39/traits/CUSTOM_1 -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.80 +{"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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b390f64b-48ab-4236-8af1-ed10fca0e351 +Openstack-Request-Id: req-3b76c6d4-69ad-4c35-9c56-321c8881c99f X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/nodes/node-39/traits/CUSTOM_1 -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.80 +{"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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e0456c7e-1856-4180-8262-09659910dea4 +Openstack-Request-Id: req-70bdc42f-8fc2-4024-bd22-62cfb282a8ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/nodes/node-39/traits/CUSTOM_12 -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/portgroups?sort_key=mode {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-baa76dea-1f9b-4120-8b30-d884acd36ecf +Openstack-Request-Id: req-03ed4a3a-bbb1-43f9-b93a-9a6ed3438b2f X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.25 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/volume/connectors/?limit=3 {} +GOT:{'connectors': [{'uuid': 'dff7261c-731b-4823-bdc7-1dfc3f865d3b', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/dff7261c-731b-4823-bdc7-1dfc3f865d3b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/dff7261c-731b-4823-bdc7-1dfc3f865d3b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '1ed244e8-2ea2-4c5c-9c8d-f9a0be9a6226', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/1ed244e8-2ea2-4c5c-9c8d-f9a0be9a6226', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1ed244e8-2ea2-4c5c-9c8d-f9a0be9a6226', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '0b3201da-82bf-4ea5-b25c-f5d748b61e85', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/0b3201da-82bf-4ea5-b25c-f5d748b61e85', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/0b3201da-82bf-4ea5-b25c-f5d748b61e85', '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=0b3201da-82bf-4ea5-b25c-f5d748b61e85'} +GET: /v1/volume/connectors?fields=uuid,extra {} +GOT:{'connectors': [{'uuid': '886fbd6e-7ac2-4b9e-8330-d57d0f8d6a73', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/886fbd6e-7ac2-4b9e-8330-d57d0f8d6a73', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/886fbd6e-7ac2-4b9e-8330-d57d0f8d6a73', 'rel': 'bookmark'}]}, {'uuid': '0dd6222e-3b5c-4c93-b6a6-32a0447658f3', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/0dd6222e-3b5c-4c93-b6a6-32a0447658f3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/0dd6222e-3b5c-4c93-b6a6-32a0447658f3', 'rel': 'bookmark'}]}, {'uuid': '3b0c40ae-e883-41bf-99aa-a38b66864095', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/3b0c40ae-e883-41bf-99aa-a38b66864095', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3b0c40ae-e883-41bf-99aa-a38b66864095', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=3b0c40ae-e883-41bf-99aa-a38b66864095'} +GET: /v1/volume/connectors {} +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_old_api_version +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_073_nodes_vendor_passthru_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_073_nodes_vendor_passthru_post_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_033_nodes_management_boot_device_put_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_033_nodes_management_boot_device_put_member ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_no_file_format +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_no_file_format ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_restrict_lookup +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_restrict_lookup ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_length +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_length ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_027_owner_reader_can_get_restricted_fields +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_027_owner_reader_can_get_restricted_fields ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_074_nodes_vendor_passthru_post_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_074_nodes_vendor_passthru_post_member ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_034_nodes_management_boot_device_put_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_034_nodes_management_boot_device_put_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_type +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_type ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve_first_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve_first_fail ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_other_error +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_other_error ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add ... ok +PATCH: /v1/nodes/7171672f-4bb5-4f49-b0be-f958c13123d4 [{'path': '/protected', 'value': 'YeahNahGood', 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0e72361e-dc3b-46d7-9f94-9b4a1eba160c +Openstack-Request-Id: req-8d75c98b-1047-4aa9-a512-d08016f11ac8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} -GOT:{'traits': ['CUSTOM_1', 'CUSTOM_2']} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} -GOT:Response: 406 Not Acceptable +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}"} +PATCH: /v1/nodes/7339e2e9-5232-42e3-968c-1cbdaf38fe97 [{'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-8bf6089d-c4b8-4505-8982-2a016eca1bfa +Openstack-Request-Id: req-0e6bfccb-07ff-4849-a05d-c982c1ebc95f X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/badname/traits {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.48 +{"uuid": "7339e2e9-5232-42e3-968c-1cbdaf38fe97", "created_at": "2024-01-06T15:34:04.955662+00:00", "updated_at": null, "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", "cpus": "8", "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/7339e2e9-5232-42e3-968c-1cbdaf38fe97", "rel": "self"}, {"href": "http://localhost/nodes/7339e2e9-5232-42e3-968c-1cbdaf38fe97", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7339e2e9-5232-42e3-968c-1cbdaf38fe97/ports", "rel": "self"}, {"href": "http://localhost/nodes/7339e2e9-5232-42e3-968c-1cbdaf38fe97/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7339e2e9-5232-42e3-968c-1cbdaf38fe97/states", "rel": "self"}, {"href": "http://localhost/nodes/7339e2e9-5232-42e3-968c-1cbdaf38fe97/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7339e2e9-5232-42e3-968c-1cbdaf38fe97/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7339e2e9-5232-42e3-968c-1cbdaf38fe97/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7339e2e9-5232-42e3-968c-1cbdaf38fe97/volume", "rel": "self"}, {"href": "http://localhost/nodes/7339e2e9-5232-42e3-968c-1cbdaf38fe97/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/3d8c64cb-fc2f-497e-a041-71443629bbac [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-dced27f8-9d1a-47ce-b382-a8ee5331e75a +Openstack-Request-Id: req-2f161e3f-20fd-4380-ba9c-642097a12899 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PUT: /v1/nodes/node-39/traits {'trait': 'CUSTOM_3'} -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_072_nodes_vendor_passthru_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_072_nodes_vendor_passthru_get_observer ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_includes_traits -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_includes_traits ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty_no_path -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty_no_path ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_025_lessee_reader_cant_get_other_node -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_025_lessee_reader_cant_get_other_node ... ok -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.21 +{"uuid": "3d8c64cb-fc2f-497e-a041-71443629bbac", "created_at": "2024-01-06T15:34:05.347224+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", "cpus": "8", "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/3d8c64cb-fc2f-497e-a041-71443629bbac", "rel": "self"}, {"href": "http://localhost/nodes/3d8c64cb-fc2f-497e-a041-71443629bbac", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3d8c64cb-fc2f-497e-a041-71443629bbac/ports", "rel": "self"}, {"href": "http://localhost/nodes/3d8c64cb-fc2f-497e-a041-71443629bbac/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3d8c64cb-fc2f-497e-a041-71443629bbac/states", "rel": "self"}, {"href": "http://localhost/nodes/3d8c64cb-fc2f-497e-a041-71443629bbac/states", "rel": "bookmark"}]} +PATCH: /v1/nodes/2778f056-e2d6-419a-86a9-4cb34c843590 [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-73ba426f-5fe0-4113-b1ce-8c0de8f61b19 +Openstack-Request-Id: req-5975f7f0-0a42-4607-92d4-98f7eff8c436 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.21 +{"uuid": "2778f056-e2d6-419a-86a9-4cb34c843590", "created_at": "2024-01-06T15:34:05.834311+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", "cpus": "8", "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/2778f056-e2d6-419a-86a9-4cb34c843590", "rel": "self"}, {"href": "http://localhost/nodes/2778f056-e2d6-419a-86a9-4cb34c843590", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2778f056-e2d6-419a-86a9-4cb34c843590/ports", "rel": "self"}, {"href": "http://localhost/nodes/2778f056-e2d6-419a-86a9-4cb34c843590/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2778f056-e2d6-419a-86a9-4cb34c843590/states", "rel": "self"}, {"href": "http://localhost/nodes/2778f056-e2d6-419a-86a9-4cb34c843590/states", "rel": "bookmark"}]} +PATCH: /v1/nodes/498476cd-49cf-4276-9622-13a6d84575f2 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-73ba426f-5fe0-4113-b1ce-8c0de8f61b19 +Openstack-Request-Id: req-638e2183-dd4d-4752-9e91-9a776c046097 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None -GOT:Response: 503 Service Unavailable +X-Openstack-Ironic-Api-Version: 1.20 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/9c0011d1-6d9a-4f8f-a635-cf0c6bb59b0d [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_node_policy_and_retrieve_no_node +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_node_policy_and_retrieve_no_node ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_value_verify_ca +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_value_verify_ca ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_redirect +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_redirect ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_075_nodes_vendor_passthru_post_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_075_nodes_vendor_passthru_post_observer ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_returns_none +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_returns_none ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade ... ok +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1dbf1833-6747-4c65-9988-b7ec97e7aa07 +Openstack-Request-Id: req-69f9b5c7-9028-470d-a0bb-de497c588989 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1dbf1833-6747-4c65-9988-b7ec97e7aa07 +Openstack-Request-Id: req-33cd29a5-4a47-4041-9ad1-06540deda871 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None -GOT:Response: 503 Service Unavailable +{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2024-01-06T15:34:06.233487+00:00", "updated_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": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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"}]} +last_error +meow +reservation +lolcats +driver_internal_info +{'private_state': 'secret value'} +driver_info +{'foo': 'bar', 'fake_password': '******'} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-33bbc99c-c0fc-4c08-8de5-e7ab5ab6c848 +Openstack-Request-Id: req-33cd29a5-4a47-4041-9ad1-06540deda871 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2024-01-06T15:34:06.233487+00:00", "updated_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": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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"}]} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f {} +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_028_lessee_reader_cannot_get_restricted_fields +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_028_lessee_reader_cannot_get_restricted_fields ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name ... ok +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-33bbc99c-c0fc-4c08-8de5-e7ab5ab6c848 +Openstack-Request-Id: req-3e199692-f148-44ef-b626-c542731e0d78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1b36bd72-bc2a-4237-b72c-4600991a7ca6 +Openstack-Request-Id: req-fbd4385d-fdeb-4f47-9244-6574c90218ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1b36bd72-bc2a-4237-b72c-4600991a7ca6 +Openstack-Request-Id: req-fbd4385d-fdeb-4f47-9244-6574c90218ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22061,46 +19968,46 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-28c10056-3be3-4604-b937-faf3c2816045 +Openstack-Request-Id: req-792cb619-246e-4f1e-92d2-81985c851af8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-28c10056-3be3-4604-b937-faf3c2816045 +Openstack-Request-Id: req-792cb619-246e-4f1e-92d2-81985c851af8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -GOT:Response: 503 Service Unavailable +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5cf4ceb2-50ce-4e57-b9a3-116a7e1970d9 +Openstack-Request-Id: req-ff47dfb1-3555-43eb-a8da-d9fa4a87cafa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5cf4ceb2-50ce-4e57-b9a3-116a7e1970d9 +Openstack-Request-Id: req-ff47dfb1-3555-43eb-a8da-d9fa4a87cafa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bdd47690-2f47-4e30-8cbb-0821c506497b +Openstack-Request-Id: req-26e68326-f541-41c3-b324-be01546dee8b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bdd47690-2f47-4e30-8cbb-0821c506497b +Openstack-Request-Id: req-26e68326-f541-41c3-b324-be01546dee8b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22109,328 +20016,144 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7e94bb7a-ab68-489a-ae28-4a0f72cc3b9b +Openstack-Request-Id: req-7e251751-fcd8-452c-9e51-9d8170a2da90 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7e94bb7a-ab68-489a-ae28-4a0f72cc3b9b +Openstack-Request-Id: req-7e251751-fcd8-452c-9e51-9d8170a2da90 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_035_nodes_management_boot_device_put_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_035_nodes_management_boot_device_put_member ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:51.781526+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:52.204060+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:52.204060+00:00', 'updated_at': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_invalid_state -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_invalid_state ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_password -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_password ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_none -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_none ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_no_traits -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_no_traits ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 ... ok -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_string_type -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_string_type ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_reason_without_retired -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_reason_without_retired ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_proto -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_proto ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_with_traits -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_with_traits ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_clean_step -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_clean_step ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version ... ok -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-22c5c3b8-ecd6-4221-b920-0f3de019d8f8 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "87a3c664-4d44-45cd-8834-662de6774ca4", "created_at": "2025-02-07T21:28:50.959836+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/87a3c664-4d44-45cd-8834-662de6774ca4", "rel": "self"}, {"href": "http://localhost/nodes/87a3c664-4d44-45cd-8834-662de6774ca4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/87a3c664-4d44-45cd-8834-662de6774ca4/ports", "rel": "self"}, {"href": "http://localhost/nodes/87a3c664-4d44-45cd-8834-662de6774ca4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/87a3c664-4d44-45cd-8834-662de6774ca4/states", "rel": "self"}, {"href": "http://localhost/nodes/87a3c664-4d44-45cd-8834-662de6774ca4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/87a3c664-4d44-45cd-8834-662de6774ca4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/87a3c664-4d44-45cd-8834-662de6774ca4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/87a3c664-4d44-45cd-8834-662de6774ca4/volume", "rel": "self"}, {"href": "http://localhost/nodes/87a3c664-4d44-45cd-8834-662de6774ca4/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/93071cb2-2509-4e8c-a3ea-0cf2cd582c1f [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-cb40f4ee-2763-4029-bae6-60bbacf06b72 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-70fe03ac-926b-455b-a836-1fc8011568fc -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:51.634771+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", "cpus": "8", "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"}]} -PATCH: /v1/nodes/node-57.1 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-4bb89a7b-e046-4156-8fc2-0418a6c549f8 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:52.132164+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", "cpus": "8", "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"}]} -PATCH: /v1/nodes/node-57.1.json [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-038df9c2-5402-471d-9b9f-ebcac5f22aa4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:28:52.652286+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", "cpus": "8", "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"}]} -PATCH: /v1/nodes/32fbc368-0f04-47e9-b4b0-8f14548f793e [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits ... ok -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_073_nodes_vendor_passthru_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_073_nodes_vendor_passthru_post_admin ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_026_third_party_admin_cant_get_node -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_026_third_party_admin_cant_get_node ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_set -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_set ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_036_nodes_management_boot_device_put_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_036_nodes_management_boot_device_put_reader ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_done -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_done ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:52.785540+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'inspecting', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:52.785540+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'inspect wait', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:53.233158+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': '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 {} -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_verify_step -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_verify_step ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_hidden_in_lower_version ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_unset -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_unset ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image ... ok -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_password -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_password ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_fail -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_export_failed -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_export_failed ... ok -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_handles_missing_table -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_handles_missing_table ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_074_nodes_vendor_passthru_post_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_074_nodes_vendor_passthru_post_member ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_proto -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_proto ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_null_field -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_null_field ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_name_missing -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_name_missing ... ok -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-d74fb29c-ba52-4906-95aa-34500c5f079e -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-02-07T21:28:51.940240+00:00", "updated_at": "2025-02-07T21:28:51.951765+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "2c23fef3-5799-4c22-98da-6844cca5fb2d", "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "2c23fef3-5799-4c22-98da-6844cca5fb2d", "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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2eb34061-3e89-4e5d-86b1-f985a87703f5 +Openstack-Request-Id: req-03b915ce-db12-4c7b-89e5-fb24f1534370 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2eb34061-3e89-4e5d-86b1-f985a87703f5 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-71d79c41-9693-468b-9dc2-11a712091237 +Openstack-Request-Id: req-03b915ce-db12-4c7b-89e5-fb24f1534370 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-71d79c41-9693-468b-9dc2-11a712091237 +Openstack-Request-Id: req-c2e89bd4-c2c3-4a79-9f47-00ce54103904 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b428f2ad-72af-4ef4-bab7-466fd5200c54 +Openstack-Request-Id: req-c2e89bd4-c2c3-4a79-9f47-00ce54103904 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-02-07T21:28:54.098578+00:00", "updated_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": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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"}]} -last_error -meow -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_in_progress -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_in_progress ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_037_nodes_management_boot_device_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_037_nodes_management_boot_device_get_admin ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation_owned -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation_owned ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_027_owner_reader_can_get_restricted_fields -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_027_owner_reader_can_get_restricted_fields ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_success -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_success ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:53.653832+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:53.653832+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:54.210384+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker ... ok -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_None -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_None ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_present -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_present ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_user -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_user ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_file_not_found -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_file_not_found ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_redfish_conn_error -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_redfish_conn_error ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_075_nodes_vendor_passthru_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_075_nodes_vendor_passthru_post_observer ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state ... ok -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_incorrect_schema -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_incorrect_schema ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_false -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_false ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker ... ok -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_still_waiting -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_still_waiting ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version_fips -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version_fips ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_name_missing -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_name_missing ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_038_nodes_management_boot_device_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_038_nodes_management_boot_device_get_member ... ok -reservation -lolcats -driver_internal_info -{'private_state': 'secret value'} -driver_info -{'foo': 'bar', 'fake_password': '******'} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b428f2ad-72af-4ef4-bab7-466fd5200c54 +Openstack-Request-Id: req-01b0b029-10f3-4f51-a3f6-0891d33e173f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-02-07T21:28:54.098578+00:00", "updated_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": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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"}]} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f {} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_035_nodes_management_boot_device_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_035_nodes_management_boot_device_get_admin ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_none +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_none ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_explicit +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_explicit ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password ... ok +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed +ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_old_api ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_076_nodes_vendor_passthru_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_076_nodes_vendor_passthru_put_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_036_nodes_management_boot_device_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_036_nodes_management_boot_device_get_member ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_first_agent_boot +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_first_agent_boot ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_clean +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_clean ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_dir +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_dir ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image_with_type +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image_with_type ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1f5a67c0-86cd-4824-85af-59172d8d06c1 +Openstack-Request-Id: req-702b9fb0-b4e4-47ea-905d-f0fc2d749c41 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-02-07T21:28:54.808882+00:00", "updated_at": "2025-02-07T21:28:54.819667+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "6c3dff78-dff0-4169-afc1-8e8fe696c5b0", "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "6c3dff78-dff0-4169-afc1-8e8fe696c5b0", "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"}]} +{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2024-01-06T15:34:06.958993+00:00", "updated_at": "2024-01-06T15:34:06.971700+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "622926a8-bcac-40b6-b68e-fa66542dd056", "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "622926a8-bcac-40b6-b68e-fa66542dd056", "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"}]} last_error ** Value Redacted - Requires baremetal:node:get:last_error permission. ** reservation @@ -22439,107 +20162,41 @@ {'content': '** Redacted - Requires baremetal:node:get:driver_internal_info permission. **'} driver_info {'content': '** Redacted - requires baremetal:node:get:driver_info permission. **'} -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_028_lessee_reader_cannot_get_restricted_fields -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_028_lessee_reader_cannot_get_restricted_fields ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters ... ok -GOT:Response: 200 OK +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-58644c03-f884-441e-986d-a4ef76ca49ca +Openstack-Request-Id: req-702b9fb0-b4e4-47ea-905d-f0fc2d749c41 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.50 -{"uuid": "32fbc368-0f04-47e9-b4b0-8f14548f793e", "created_at": "2025-02-07T21:28:53.209712+00:00", "updated_at": null, "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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": 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/32fbc368-0f04-47e9-b4b0-8f14548f793e", "rel": "self"}, {"href": "http://localhost/nodes/32fbc368-0f04-47e9-b4b0-8f14548f793e", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/32fbc368-0f04-47e9-b4b0-8f14548f793e/ports", "rel": "self"}, {"href": "http://localhost/nodes/32fbc368-0f04-47e9-b4b0-8f14548f793e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/32fbc368-0f04-47e9-b4b0-8f14548f793e/states", "rel": "self"}, {"href": "http://localhost/nodes/32fbc368-0f04-47e9-b4b0-8f14548f793e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/32fbc368-0f04-47e9-b4b0-8f14548f793e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/32fbc368-0f04-47e9-b4b0-8f14548f793e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/32fbc368-0f04-47e9-b4b0-8f14548f793e/volume", "rel": "self"}, {"href": "http://localhost/nodes/32fbc368-0f04-47e9-b4b0-8f14548f793e/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/69d6dd40-2949-441e-8ede-e1b72e576b86 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2024-01-06T15:34:06.958993+00:00", "updated_at": "2024-01-06T15:34:06.971700+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "622926a8-bcac-40b6-b68e-fa66542dd056", "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "622926a8-bcac-40b6-b68e-fa66542dd056", "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"}]} +API ACL Testing Path get /v1/nodes/detail +GET: /v1/nodes/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-66bcf262-d821-4991-80bd-63598ce812e9 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.50 -{"uuid": "69d6dd40-2949-441e-8ede-e1b72e576b86", "created_at": "2025-02-07T21:28:53.778917+00:00", "updated_at": null, "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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": 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/69d6dd40-2949-441e-8ede-e1b72e576b86", "rel": "self"}, {"href": "http://localhost/nodes/69d6dd40-2949-441e-8ede-e1b72e576b86", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/69d6dd40-2949-441e-8ede-e1b72e576b86/ports", "rel": "self"}, {"href": "http://localhost/nodes/69d6dd40-2949-441e-8ede-e1b72e576b86/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/69d6dd40-2949-441e-8ede-e1b72e576b86/states", "rel": "self"}, {"href": "http://localhost/nodes/69d6dd40-2949-441e-8ede-e1b72e576b86/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/69d6dd40-2949-441e-8ede-e1b72e576b86/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/69d6dd40-2949-441e-8ede-e1b72e576b86/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/69d6dd40-2949-441e-8ede-e1b72e576b86/volume", "rel": "self"}, {"href": "http://localhost/nodes/69d6dd40-2949-441e-8ede-e1b72e576b86/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/6898dccf-f205-4c65-9ec0-1ae6b5381a78 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Request-Id: req-b0e606ec-9773-4e4a-8f4f-71aaa189ab1f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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 \\\"6898dccf-f205-4c65-9ec0-1ae6b5381a78\\\" while it is allocated to an allocation with an owner.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/9d6a3352-51ea-43f7-b863-d08bc8479ab7 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-b070f556-0ba1-4747-8ba8-fc5130f871a8 +Openstack-Request-Id: req-49db60f3-acbd-4f79-8a4a-5de9a7a24e1f X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/a673eb5a-97b4-4fd7-8f02-0a9e7e20e1ae [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_invalid -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_invalid ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error ... ok -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:54.517711+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': 'some-lucky-project', 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/d3d29653-1b08-4c21-b88e-a92ead2f865c {} -GOT:{'uuid': 'd3d29653-1b08-4c21-b88e-a92ead2f865c', 'created_at': '2025-02-07T21:28:54.834056+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, '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.1ad', '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': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'active', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/d3d29653-1b08-4c21-b88e-a92ead2f865c', 'rel': 'self'}, {'href': 'http://localhost/nodes/d3d29653-1b08-4c21-b88e-a92ead2f865c', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/d3d29653-1b08-4c21-b88e-a92ead2f865c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/d3d29653-1b08-4c21-b88e-a92ead2f865c/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/d3d29653-1b08-4c21-b88e-a92ead2f865c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/d3d29653-1b08-4c21-b88e-a92ead2f865c/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/d3d29653-1b08-4c21-b88e-a92ead2f865c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/d3d29653-1b08-4c21-b88e-a92ead2f865c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/d3d29653-1b08-4c21-b88e-a92ead2f865c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/d3d29653-1b08-4c21-b88e-a92ead2f865c/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success ... ok -ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg -ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_076_nodes_vendor_passthru_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_076_nodes_vendor_passthru_put_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_task_monitor_not_found -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_task_monitor_not_found ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_history_get_destroyed_after_destroying_a_node_by_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_history_get_destroyed_after_destroying_a_node_by_uuid ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data_hidden_in_lower_version ... ok -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_raises_missing_table -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_raises_missing_table ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_verify_ca -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_verify_ca ... ok -ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_set_arg_types -ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_set_arg_types ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_export_configuration_success -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_export_configuration_success ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_raises_ilo_error -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_raises_ilo_error ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state ... ok -ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification -ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned_forbidden ... ok -ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature -ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_node_provision_state_count -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_node_provision_state_count ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_039_nodes_management_boot_device_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_039_nodes_management_boot_device_get_reader ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_wait_elapsed -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_wait_elapsed ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2024-01-06T15:34:07.656421+00:00", "updated_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": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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-01-06T15:34:07.667550+00:00", "updated_at": "2024-01-06T15:34:07.677772+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", "traits": []}, "instance_uuid": "1ac376aa-a1fa-4656-9537-dfbb92cacea9", "last_error": "meow", "lessee": "f11853c7-fa9c-4db3-a477-c9d8e0dbbf13", "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "1ac376aa-a1fa-4656-9537-dfbb92cacea9", "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"}]}]} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_029_owner_reader_can_get_detail +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_029_owner_reader_can_get_detail ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_file +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_file ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_reason +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_reason ... ok API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ffcb9e95-d5e1-4da0-bc08-41708321ccc2 +Openstack-Request-Id: req-76ae848a-5911-440c-b684-91fa4265efb4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22548,7 +20205,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-02687ed0-f0d7-4ad2-92a8-3b905437d825 +Openstack-Request-Id: req-a0cbc5d7-491d-4604-a4ce-863a90db2a7b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22557,7 +20214,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0d9a683e-3ca4-4b2b-848c-37eeaa5c8a3a +Openstack-Request-Id: req-507d5051-78aa-4e81-8645-1cc73a287e9c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22566,7 +20223,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a604b51f-483c-4721-bd90-92f0b30c65e5 +Openstack-Request-Id: req-260bd636-6942-45a3-9f3a-d86afe88dcc8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22575,7 +20232,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-507259a4-1f04-4230-9c86-639d2214206b +Openstack-Request-Id: req-7df660e5-6532-4434-b082-ae905e09a026 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22584,7 +20241,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-41df82ca-ca53-4928-bbb0-798af59a368a +Openstack-Request-Id: req-5f91e79c-2e41-4899-ba49-3406c9ec5afb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22593,7 +20250,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5200e6d3-c044-46d7-b0a4-21390d8dd654 +Openstack-Request-Id: req-24025592-c602-4de0-9b15-ef2ae2729d4d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22602,7 +20259,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-60338549-3bb4-4cc9-b0cb-d1300a2830db +Openstack-Request-Id: req-fea37e19-13a9-4486-9e8b-f1ca77268b63 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22611,7 +20268,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f2c3b9a5-7262-473b-bfe8-460344b62738 +Openstack-Request-Id: req-2311e965-1d11-472a-988f-602d9c93d88b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22620,7 +20277,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a2f37e56-8d88-4edb-91c1-629d86e51e91 +Openstack-Request-Id: req-cad065ea-0153-44b2-9ddb-c9adccee811a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22629,7 +20286,7 @@ POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3e6396f6-17a0-48ff-8bc1-60385cbd80f6 +Openstack-Request-Id: req-fe6ccc77-4743-4ae2-9384-9f1c3dea3bb1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22638,7 +20295,7 @@ POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3dc49e21-61d2-45f1-a56e-a332511f6ffc +Openstack-Request-Id: req-bc4b5a34-2aa3-40af-b159-afa9b60e1427 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22647,7 +20304,7 @@ POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-55844a20-4c75-40a1-b3f9-4ffd4bb7cf09 +Openstack-Request-Id: req-72db450e-a2c5-4d82-8f2f-1fb81cb62599 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -22656,451 +20313,802 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-33fa20c4-0f50-4b38-a540-5a82b6d58923 +Openstack-Request-Id: req-919745d0-0e1f-4d72-9259-cb8fcffa6682 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:55.177199+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:55.177199+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:55.577418+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc ... ok -ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate ... ok -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_known_good_state -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_known_good_state ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance ... ok +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:04.996533+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}]} +GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:{'ports': []} +GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-4f63fbfd-28bc-405c-923a-ab9a842d0fa7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +GET: /v1/ports?fields=uuid,extra {} +GOT:{'ports': [{'uuid': '7492eb98-ed15-47b1-8b50-16f27153a476', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/7492eb98-ed15-47b1-8b50-16f27153a476', 'rel': 'self'}, {'href': 'http://localhost/ports/7492eb98-ed15-47b1-8b50-16f27153a476', 'rel': 'bookmark'}]}, {'uuid': 'fc8a523c-9644-4647-9770-41d9cded6f20', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/fc8a523c-9644-4647-9770-41d9cded6f20', 'rel': 'self'}, {'href': 'http://localhost/ports/fc8a523c-9644-4647-9770-41d9cded6f20', 'rel': 'bookmark'}]}, {'uuid': 'de69001a-f590-4ea3-8c53-38d8b8557ddf', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/de69001a-f590-4ea3-8c53-38d8b8557ddf', 'rel': 'self'}, {'href': 'http://localhost/ports/de69001a-f590-4ea3-8c53-38d8b8557ddf', 'rel': 'bookmark'}]}]} +GET: /v1/ports?fields=address&limit=2 {} +GOT:{'ports': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/0c1fe667-4619-4a7c-95e8-c1f36a41a96d', 'rel': 'self'}, {'href': 'http://localhost/ports/0c1fe667-4619-4a7c-95e8-c1f36a41a96d', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/cc6d3a2c-1b78-4df5-b452-6b8095a6d62b', 'rel': 'self'}, {'href': 'http://localhost/ports/cc6d3a2c-1b78-4df5-b452-6b8095a6d62b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=cc6d3a2c-1b78-4df5-b452-6b8095a6d62b'} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-ec8481ef-f9b9-4c98-a5cf-287c60a79f25 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-a0c7a8ca-2112-474c-ac94-949e8d50d27b +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,is_smartnic {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-6c0bab99-926c-45f0-b054-46bf51129742 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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 {} +GOT:{'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'}]} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-cd4f23dc-1bdc-4c3f-8818-04705f48997c +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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 {} +GOT:{'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'}]} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-1e6ce44a-8ecb-4bdc-bfd5-1a5e61c8a3f5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:07.474009+00:00', 'updated_at': None, '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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=address,extra {} +GOT:{'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'}]} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:07.930557+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:08.196292+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, '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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_no_skip_step +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_no_skip_step ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_deploy +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_deploy ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_077_nodes_vendor_passthru_put_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_077_nodes_vendor_passthru_put_member ... ok -ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets -ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc ... ok -ACL Test GOT Response: 200 OK +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_037_nodes_management_boot_device_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_037_nodes_management_boot_device_get_observer ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_populate_node_uuid +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_populate_node_uuid ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1f5a67c0-86cd-4824-85af-59172d8d06c1 +Openstack-Request-Id: req-956d4cb5-5c89-43d8-8c97-d8b38d4c7e46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-02-07T21:28:54.808882+00:00", "updated_at": "2025-02-07T21:28:54.819667+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "6c3dff78-dff0-4169-afc1-8e8fe696c5b0", "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "6c3dff78-dff0-4169-afc1-8e8fe696c5b0", "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"}]} -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} +X-Openstack-Ironic-Api-Version: 1.21 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' is too long\", \"debuginfo\": null}"} +PATCH: /v1/nodes/e80765f7-a709-4893-af44-9d9530a367e0 [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f52acc91-ca67-46b1-8176-defb92f6e4dc +Openstack-Request-Id: req-60d25121-3789-43e9-a7e7-8d9bc8a645c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-02-07T21:28:55.528044+00:00", "updated_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": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-02-07T21:28:55.547005+00:00", "updated_at": "2025-02-07T21:28:55.561433+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", "traits": []}, "instance_uuid": "3f5b13c8-b88c-4745-b641-4ae48a24c1a3", "last_error": "meow", "lessee": "f11853c7-fa9c-4db3-a477-c9d8e0dbbf13", "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "3f5b13c8-b88c-4745-b641-4ae48a24c1a3", "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"}]}]} -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_last_update -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_last_update ... ok -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_029_owner_reader_can_get_detail -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_029_owner_reader_can_get_detail ... ok -ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc -ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected ... ok -ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification -ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true_default -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true_default ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false ... ok -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_auth_password -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_auth_password ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_more_updates -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_more_updates ... ok -ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc -ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_040_nodes_management_boot_device_supported_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_040_nodes_management_boot_device_supported_get_admin ... ok -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_priv_password -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_priv_password ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_078_nodes_vendor_passthru_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_078_nodes_vendor_passthru_put_observer ... ok -ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc -ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails ... ok -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_wait -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_wait ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_user -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_user ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_clean_step -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_clean_step ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild ... ok -ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification -ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification ... ok -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state ... ok +X-Openstack-Ironic-Api-Version: 1.61 +{"uuid": "e80765f7-a709-4893-af44-9d9530a367e0", "created_at": "2024-01-06T15:34:07.196700+00:00", "updated_at": null, "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", "cpus": "8", "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/e80765f7-a709-4893-af44-9d9530a367e0", "rel": "self"}, {"href": "http://localhost/nodes/e80765f7-a709-4893-af44-9d9530a367e0", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e80765f7-a709-4893-af44-9d9530a367e0/ports", "rel": "self"}, {"href": "http://localhost/nodes/e80765f7-a709-4893-af44-9d9530a367e0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e80765f7-a709-4893-af44-9d9530a367e0/states", "rel": "self"}, {"href": "http://localhost/nodes/e80765f7-a709-4893-af44-9d9530a367e0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e80765f7-a709-4893-af44-9d9530a367e0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e80765f7-a709-4893-af44-9d9530a367e0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e80765f7-a709-4893-af44-9d9530a367e0/volume", "rel": "self"}, {"href": "http://localhost/nodes/e80765f7-a709-4893-af44-9d9530a367e0/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/fff5440a-7fcc-420e-bde9-8e7a5fcc9a2f [{'path': '/retired', 'value': True, 'op': 'replace'}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-d5f069b2-7a9f-419d-8b8e-203560f6e76b +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PATCH: /v1/nodes/73568fc6-fa9e-48d0-95a5-e22a782482e9 [{'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-c3edc833-f921-45fe-a2c8-348341b25c8e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.61 +{"uuid": "73568fc6-fa9e-48d0-95a5-e22a782482e9", "created_at": "2024-01-06T15:34:07.936872+00:00", "updated_at": null, "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", "cpus": "8", "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/73568fc6-fa9e-48d0-95a5-e22a782482e9", "rel": "self"}, {"href": "http://localhost/nodes/73568fc6-fa9e-48d0-95a5-e22a782482e9", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/73568fc6-fa9e-48d0-95a5-e22a782482e9/ports", "rel": "self"}, {"href": "http://localhost/nodes/73568fc6-fa9e-48d0-95a5-e22a782482e9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/73568fc6-fa9e-48d0-95a5-e22a782482e9/states", "rel": "self"}, {"href": "http://localhost/nodes/73568fc6-fa9e-48d0-95a5-e22a782482e9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/73568fc6-fa9e-48d0-95a5-e22a782482e9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/73568fc6-fa9e-48d0-95a5-e22a782482e9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/73568fc6-fa9e-48d0-95a5-e22a782482e9/volume", "rel": "self"}, {"href": "http://localhost/nodes/73568fc6-fa9e-48d0-95a5-e22a782482e9/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/0a4dfa84-f117-448a-b157-4ad4eb4978aa [{'op': 'remove', 'path': '/retired'}] +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_clean +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_clean ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_remove +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_remove ... ok ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f52acc91-ca67-46b1-8176-defb92f6e4dc +Openstack-Request-Id: req-49db60f3-acbd-4f79-8a4a-5de9a7a24e1f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-02-07T21:28:55.528044+00:00", "updated_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": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-02-07T21:28:55.547005+00:00", "updated_at": "2025-02-07T21:28:55.561433+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", "traits": []}, "instance_uuid": "3f5b13c8-b88c-4745-b641-4ae48a24c1a3", "last_error": "meow", "lessee": "f11853c7-fa9c-4db3-a477-c9d8e0dbbf13", "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "3f5b13c8-b88c-4745-b641-4ae48a24c1a3", "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"}]}]} +{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2024-01-06T15:34:07.656421+00:00", "updated_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": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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-01-06T15:34:07.667550+00:00", "updated_at": "2024-01-06T15:34:07.677772+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", "traits": []}, "instance_uuid": "1ac376aa-a1fa-4656-9537-dfbb92cacea9", "last_error": "meow", "lessee": "f11853c7-fa9c-4db3-a477-c9d8e0dbbf13", "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "1ac376aa-a1fa-4656-9537-dfbb92cacea9", "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"}]}]} API ACL Testing Path get /v1/nodes/detail GET: /v1/nodes/detail {} +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_030_lessee_reader_can_get_detail ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_030_lessee_reader_can_get_detail ... ok -ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status -ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status ... ok -GOT:Response: 200 OK +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info ... ok +GOT:{'connectors': [{'uuid': 'fc17e7db-ee12-4ab1-9e3c-70dfebf49649', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/fc17e7db-ee12-4ab1-9e3c-70dfebf49649', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/fc17e7db-ee12-4ab1-9e3c-70dfebf49649', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'f2d1e8bf-0445-4a56-93ce-532dc8dad09a', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/f2d1e8bf-0445-4a56-93ce-532dc8dad09a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/f2d1e8bf-0445-4a56-93ce-532dc8dad09a', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '26bae1ec-ec8e-4d74-a89c-d8f747e794ce', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/26bae1ec-ec8e-4d74-a89c-d8f747e794ce', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/26bae1ec-ec8e-4d74-a89c-d8f747e794ce', '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=26bae1ec-ec8e-4d74-a89c-d8f747e794ce'} +GET: /v1/volume/connectors?detail=True&limit=3 {} +GOT:{'connectors': [{'uuid': '23aab55a-e53c-4555-b1ce-1f77f1292ab3', 'created_at': '2024-01-06T15:34:06.295113+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-0', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/23aab55a-e53c-4555-b1ce-1f77f1292ab3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/23aab55a-e53c-4555-b1ce-1f77f1292ab3', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '37336d90-141b-4174-927f-574bdd29106e', 'created_at': '2024-01-06T15:34:06.296393+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-1', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/37336d90-141b-4174-927f-574bdd29106e', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/37336d90-141b-4174-927f-574bdd29106e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '6381f2b6-985b-47f8-be96-c405baf9b6ea', 'created_at': '2024-01-06T15:34:06.297549+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-2', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/6381f2b6-985b-47f8-be96-c405baf9b6ea', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6381f2b6-985b-47f8-be96-c405baf9b6ea', '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=6381f2b6-985b-47f8-be96-c405baf9b6ea'} +GET: /v1/volume/connectors?detail=True {} +GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:06.551295+00:00', 'updated_at': None, '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?detail=True {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0f87dafc-44c8-4c44-940b-eaa74e90947d +Openstack-Request-Id: req-b931e51c-6a32-4427-bdea-0d40d19b389e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.50 -{"uuid": "a673eb5a-97b4-4fd7-8f02-0a9e7e20e1ae", "created_at": "2025-02-07T21:28:54.992127+00:00", "updated_at": null, "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", "cpus": "8", "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/a673eb5a-97b4-4fd7-8f02-0a9e7e20e1ae", "rel": "self"}, {"href": "http://localhost/nodes/a673eb5a-97b4-4fd7-8f02-0a9e7e20e1ae", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a673eb5a-97b4-4fd7-8f02-0a9e7e20e1ae/ports", "rel": "self"}, {"href": "http://localhost/nodes/a673eb5a-97b4-4fd7-8f02-0a9e7e20e1ae/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a673eb5a-97b4-4fd7-8f02-0a9e7e20e1ae/states", "rel": "self"}, {"href": "http://localhost/nodes/a673eb5a-97b4-4fd7-8f02-0a9e7e20e1ae/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a673eb5a-97b4-4fd7-8f02-0a9e7e20e1ae/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a673eb5a-97b4-4fd7-8f02-0a9e7e20e1ae/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a673eb5a-97b4-4fd7-8f02-0a9e7e20e1ae/volume", "rel": "self"}, {"href": "http://localhost/nodes/a673eb5a-97b4-4fd7-8f02-0a9e7e20e1ae/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/f1ad3615-a26a-4952-ac5a-35e34d2faf30 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True&fields=connector_id,extra {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-bd00e48f-4f31-4654-aa87-7c82dd4edaab +Openstack-Request-Id: req-82269b9f-a0de-4d8d-9fa5-632abd409231 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 \\\"f1ad3615-a26a-4952-ac5a-35e34d2faf30\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} -PATCH: /v1/nodes/23e1a6aa-b8de-41a4-86d1-6c5ddbf0aa05 [{'path': '/protected', 'value': True, 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} +GET: /v1/volume/connectors?detail=True&node=test-node {} +GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:07.191463+00:00', 'updated_at': None, '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?detail=False {} +GOT:{'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'}]} +GET: /v1/volume/connectors?detail=True {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-06b2fc2f-19e9-4b49-a734-d887b1109525 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.48 -{"uuid": "23e1a6aa-b8de-41a4-86d1-6c5ddbf0aa05", "created_at": "2025-02-07T21:28:55.821647+00:00", "updated_at": null, "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", "cpus": "8", "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/23e1a6aa-b8de-41a4-86d1-6c5ddbf0aa05", "rel": "self"}, {"href": "http://localhost/nodes/23e1a6aa-b8de-41a4-86d1-6c5ddbf0aa05", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/23e1a6aa-b8de-41a4-86d1-6c5ddbf0aa05/ports", "rel": "self"}, {"href": "http://localhost/nodes/23e1a6aa-b8de-41a4-86d1-6c5ddbf0aa05/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/23e1a6aa-b8de-41a4-86d1-6c5ddbf0aa05/states", "rel": "self"}, {"href": "http://localhost/nodes/23e1a6aa-b8de-41a4-86d1-6c5ddbf0aa05/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/23e1a6aa-b8de-41a4-86d1-6c5ddbf0aa05/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/23e1a6aa-b8de-41a4-86d1-6c5ddbf0aa05/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/23e1a6aa-b8de-41a4-86d1-6c5ddbf0aa05/volume", "rel": "self"}, {"href": "http://localhost/nodes/23e1a6aa-b8de-41a4-86d1-6c5ddbf0aa05/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/fc99cf1b-70b9-4718-9e40-4dcdc7b1908e [{'path': '/protected', 'value': True, 'op': 'replace'}] -GOT:Response: 406 Not Acceptable +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/volume/connectors/detail {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-10442a8d-9ace-47d4-8ef4-26e002363e54 +Openstack-Request-Id: req-feb32407-d0e8-415d-a6fb-9292133927a4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/29aeba36-b2f5-4619-968e-0d4c85a454bf [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_auth_password -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_auth_password ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_verify_step -ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_verify_step ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:55.577418+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:56.094146+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:56.596725+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': 'akindofmagic', 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/1e546e7f-b4b8-4c68-aa91-4a8a9636b6c8 {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_041_nodes_management_boot_device_supported_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_041_nodes_management_boot_device_supported_get_member ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for connector_uuid: detail\", \"debuginfo\": null}"} +GET: /v1/volume/connectors {} +GOT:{'connectors': []} +GET: /v1/volume/connectors?node=test-node {} +GOT:{'connectors': [{'uuid': 'a24011b0-0f11-475e-8546-ba3dff3b1d71', 'connector_id': 'test-value-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/a24011b0-0f11-475e-8546-ba3dff3b1d71', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/a24011b0-0f11-475e-8546-ba3dff3b1d71', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '21f2fe1b-3eb1-4fca-986a-f2daa9e2df18', 'connector_id': 'test-value-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/21f2fe1b-3eb1-4fca-986a-f2daa9e2df18', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/21f2fe1b-3eb1-4fca-986a-f2daa9e2df18', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '2ea65574-fd67-4327-a4de-b2e9a1ef1e95', 'connector_id': 'test-value-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/2ea65574-fd67-4327-a4de-b2e9a1ef1e95', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/2ea65574-fd67-4327-a4de-b2e9a1ef1e95', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/volume/connectors?fields=uuid,extra {} +GOT:{'connectors': [{'uuid': '3dccb370-ad2d-4e45-aed3-0946943406a8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/3dccb370-ad2d-4e45-aed3-0946943406a8', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3dccb370-ad2d-4e45-aed3-0946943406a8', 'rel': 'bookmark'}]}, {'uuid': 'ffdae6ef-160f-43be-9c88-b817fc2af3d1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/ffdae6ef-160f-43be-9c88-b817fc2af3d1', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ffdae6ef-160f-43be-9c88-b817fc2af3d1', 'rel': 'bookmark'}]}, {'uuid': 'd865ee10-6824-4fde-adc4-a71a41b2fa83', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/d865ee10-6824-4fde-adc4-a71a41b2fa83', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/d865ee10-6824-4fde-adc4-a71a41b2fa83', 'rel': 'bookmark'}]}]} +GET: /v1/volume/connectors?fields=connector_id&limit=2 {} +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_078_nodes_vendor_passthru_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_078_nodes_vendor_passthru_put_observer ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid_not_found +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid_not_found ... ok +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_deploy +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_deploy ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_with_reason +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_with_reason ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_agent_busy +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_agent_busy ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id ... ok +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id_not_found +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id_not_found ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_with_errors_job +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_with_errors_job ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_079_nodes_vendor_passthru_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_079_nodes_vendor_passthru_delete_admin ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message ... ok -ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification -ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_priv_password -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_priv_password ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__change_physical_disk_mode -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__change_physical_disk_mode ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker ... ok -ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification -ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node ... ok -GOT:{'uuid': '1e546e7f-b4b8-4c68-aa91-4a8a9636b6c8', 'created_at': '2025-02-07T21:28:57.127064+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': True, 'protected_reason': None, 'provision_state': 'active', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1e546e7f-b4b8-4c68-aa91-4a8a9636b6c8', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e546e7f-b4b8-4c68-aa91-4a8a9636b6c8', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1e546e7f-b4b8-4c68-aa91-4a8a9636b6c8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e546e7f-b4b8-4c68-aa91-4a8a9636b6c8/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1e546e7f-b4b8-4c68-aa91-4a8a9636b6c8/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e546e7f-b4b8-4c68-aa91-4a8a9636b6c8/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1e546e7f-b4b8-4c68-aa91-4a8a9636b6c8/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e546e7f-b4b8-4c68-aa91-4a8a9636b6c8/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1e546e7f-b4b8-4c68-aa91-4a8a9636b6c8/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e546e7f-b4b8-4c68-aa91-4a8a9636b6c8/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/b235f7d1-36fb-43ba-a2a0-0eb3007ecf5a {} -GOT:{'uuid': 'b235f7d1-36fb-43ba-a2a0-0eb3007ecf5a', 'created_at': '2025-02-07T21:28:57.261583+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'active', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/b235f7d1-36fb-43ba-a2a0-0eb3007ecf5a', 'rel': 'self'}, {'href': 'http://localhost/nodes/b235f7d1-36fb-43ba-a2a0-0eb3007ecf5a', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/b235f7d1-36fb-43ba-a2a0-0eb3007ecf5a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b235f7d1-36fb-43ba-a2a0-0eb3007ecf5a/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b235f7d1-36fb-43ba-a2a0-0eb3007ecf5a/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b235f7d1-36fb-43ba-a2a0-0eb3007ecf5a/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b235f7d1-36fb-43ba-a2a0-0eb3007ecf5a/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b235f7d1-36fb-43ba-a2a0-0eb3007ecf5a/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b235f7d1-36fb-43ba-a2a0-0eb3007ecf5a/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b235f7d1-36fb-43ba-a2a0-0eb3007ecf5a/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:57.563332+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_snmpv3 -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_snmpv3 ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_with_config_job -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_with_config_job ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_remove -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_remove ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_power -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_power ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error ... ok +GOT:{'node': {'uuid': '68a29c97-3eb1-4613-a9ab-6027a3999dae', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/68a29c97-3eb1-4613-a9ab-6027a3999dae', 'rel': 'self'}, {'href': 'http://localhost/nodes/68a29c97-3eb1-4613-a9ab-6027a3999dae', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'abcxyz', 'agent_token_required': True}} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} +GOT:{'node': {'uuid': 'e82546cb-e48f-427b-b89e-598e19b44edb', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/e82546cb-e48f-427b-b89e-598e19b44edb', 'rel': 'self'}, {'href': 'http://localhost/nodes/e82546cb-e48f-427b-b89e-598e19b44edb', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'some-value', 'agent_token_required': True}} +GET: /v1/lookup?node_uuid=2a84f4cf-ce33-406c-a980-8925e43c643b {} +GOT:{'node': {'uuid': '2a84f4cf-ce33-406c-a980-8925e43c643b', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/2a84f4cf-ce33-406c-a980-8925e43c643b', 'rel': 'self'}, {'href': 'http://localhost/nodes/2a84f4cf-ce33-406c-a980-8925e43c643b', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'xyzabc', 'agent_token_required': True}} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=f670eeeb-b199-4087-80f0-88c503a3242c {} +GOT:{'node': {'uuid': 'f670eeeb-b199-4087-80f0-88c503a3242c', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/f670eeeb-b199-4087-80f0-88c503a3242c', 'rel': 'self'}, {'href': 'http://localhost/nodes/f670eeeb-b199-4087-80f0-88c503a3242c', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'this_thing_on?', 'agent_token_required': True}} +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 {} +GOT:{'node': {'uuid': '1e2095b9-1139-432e-9e05-ec9f668c6d7f', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/1e2095b9-1139-432e-9e05-ec9f668c6d7f', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e2095b9-1139-432e-9e05-ec9f668c6d7f', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': '123456', 'agent_token_required': True}} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=71fb1cf7-4a69-46a4-be28-4ea7af43d6a1 {} +GOT:{'node': {'uuid': '71fb1cf7-4a69-46a4-be28-4ea7af43d6a1', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/71fb1cf7-4a69-46a4-be28-4ea7af43d6a1', 'rel': 'self'}, {'href': 'http://localhost/nodes/71fb1cf7-4a69-46a4-be28-4ea7af43d6a1', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': '234567890', 'agent_token_required': True}} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-04e746a4-269e-4de6-be30-257f7c1b309d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/lookup {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-ca22101d-fbfc-41ef-a9b6-a9ced3711c97 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-f863f46e-5cd9-4359-bab1-77a8eca6b21a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=d1216b1d-4baa-4d70-b9f6-22e3ff874b07 {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-ab8806e0-e482-4966-a41d-5be3f9f61a2a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_031_third_party_admin_cannot_get_detail ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_031_third_party_admin_cannot_get_detail ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_without_config_job -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_without_config_job ... ok -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_string_bool_verify_ca -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_string_bool_verify_ca ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_network_type_unmanaged +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_network_type_unmanaged ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_false +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_false ... ok +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-7ac11af0-8e5a-4e3c-a47a-4b7279d1343e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.61 +{"uuid": "0a4dfa84-f117-448a-b157-4ad4eb4978aa", "created_at": "2024-01-06T15:34:08.462195+00:00", "updated_at": null, "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", "cpus": "8", "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/0a4dfa84-f117-448a-b157-4ad4eb4978aa", "rel": "self"}, {"href": "http://localhost/nodes/0a4dfa84-f117-448a-b157-4ad4eb4978aa", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0a4dfa84-f117-448a-b157-4ad4eb4978aa/ports", "rel": "self"}, {"href": "http://localhost/nodes/0a4dfa84-f117-448a-b157-4ad4eb4978aa/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0a4dfa84-f117-448a-b157-4ad4eb4978aa/states", "rel": "self"}, {"href": "http://localhost/nodes/0a4dfa84-f117-448a-b157-4ad4eb4978aa/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0a4dfa84-f117-448a-b157-4ad4eb4978aa/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0a4dfa84-f117-448a-b157-4ad4eb4978aa/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0a4dfa84-f117-448a-b157-4ad4eb4978aa/volume", "rel": "self"}, {"href": "http://localhost/nodes/0a4dfa84-f117-448a-b157-4ad4eb4978aa/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/2397bcba-1dc0-4e24-9f4d-501f90c085ff [{'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-64b999ea-5bec-4ac5-a093-996f6ab0a7e5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.61 +{"uuid": "2397bcba-1dc0-4e24-9f4d-501f90c085ff", "created_at": "2024-01-06T15:34:08.899136+00:00", "updated_at": null, "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", "cpus": "8", "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/2397bcba-1dc0-4e24-9f4d-501f90c085ff", "rel": "self"}, {"href": "http://localhost/nodes/2397bcba-1dc0-4e24-9f4d-501f90c085ff", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2397bcba-1dc0-4e24-9f4d-501f90c085ff/ports", "rel": "self"}, {"href": "http://localhost/nodes/2397bcba-1dc0-4e24-9f4d-501f90c085ff/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2397bcba-1dc0-4e24-9f4d-501f90c085ff/states", "rel": "self"}, {"href": "http://localhost/nodes/2397bcba-1dc0-4e24-9f4d-501f90c085ff/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2397bcba-1dc0-4e24-9f4d-501f90c085ff/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2397bcba-1dc0-4e24-9f4d-501f90c085ff/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2397bcba-1dc0-4e24-9f4d-501f90c085ff/volume", "rel": "self"}, {"href": "http://localhost/nodes/2397bcba-1dc0-4e24-9f4d-501f90c085ff/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'power_state': 'new state'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-b52796c9-3742-4091-a362-394838ff469a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PATCH: /v1/nodes/15b9d894-1e6c-4542-84c0-fd5daacecbe4 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_true +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_true ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_clean +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_clean ... ok +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_default_value +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_default_value ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_080_nodes_vendor_passthru_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_080_nodes_vendor_passthru_delete_member ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_042_nodes_management_boot_device_supported_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_042_nodes_management_boot_device_supported_get_reader ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_using_snmp_security -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_using_snmp_security ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node ... ok -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_no_steps -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_no_steps ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config_fail ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed_no_firmware_upd -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed_no_firmware_upd ... ok -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_on_node -ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_on_node ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:08.196292+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:08.486823+00:00', 'updated_at': None, '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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:08.486823+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:08.742439+00:00', 'updated_at': None, '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': None, 'pxe_enabled': 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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:08.742439+00:00', 'updated_at': None, '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': None, 'pxe_enabled': 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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:09.016491+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:09.016491+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:09.231787+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:09.476918+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:09.476918+00:00', 'updated_at': None, '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, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GET: /v1/ports/24727ed2-59f3-4fb7-82b9-b7fe652f2ed7 {} +GOT:{'uuid': '24727ed2-59f3-4fb7-82b9-b7fe652f2ed7', 'created_at': '2024-01-06T15:34:09.689056+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/24727ed2-59f3-4fb7-82b9-b7fe652f2ed7', 'rel': 'self'}, {'href': 'http://localhost/ports/24727ed2-59f3-4fb7-82b9-b7fe652f2ed7', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/ports/24727ed2-59f3-4fb7-82b9-b7fe652f2ed7 {} +GOT:{'uuid': '24727ed2-59f3-4fb7-82b9-b7fe652f2ed7', 'created_at': '2024-01-06T15:34:09.689056+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/24727ed2-59f3-4fb7-82b9-b7fe652f2ed7', 'rel': 'self'}, {'href': 'http://localhost/ports/24727ed2-59f3-4fb7-82b9-b7fe652f2ed7', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /ports/24727ed2-59f3-4fb7-82b9-b7fe652f2ed7 {} +GOT:{'uuid': '24727ed2-59f3-4fb7-82b9-b7fe652f2ed7', 'created_at': '2024-01-06T15:34:09.689056+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/24727ed2-59f3-4fb7-82b9-b7fe652f2ed7', 'rel': 'self'}, {'href': 'http://localhost/ports/24727ed2-59f3-4fb7-82b9-b7fe652f2ed7', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/ports/21a228cc-85fe-48ca-aeb4-1c23e7d8804c {} +GOT:{'uuid': '21a228cc-85fe-48ca-aeb4-1c23e7d8804c', 'created_at': '2024-01-06T15:34:09.968456+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/21a228cc-85fe-48ca-aeb4-1c23e7d8804c', 'rel': 'self'}, {'href': 'http://foo/ports/21a228cc-85fe-48ca-aeb4-1c23e7d8804c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_string_false +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_string_false ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version ... ok +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_deploy +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_deploy ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_032_owner_admin_can_patch_node_extra +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_032_owner_admin_can_patch_node_extra ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_handled_exception +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_handled_exception ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links ... ok +ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap +ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_081_nodes_vendor_passthru_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_081_nodes_vendor_passthru_delete_observer ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_clean +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_clean ... ok +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-4d8cf3ac-908c-4e25-9374-ea8a4557bc5a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2024-01-06T15:34:08.508931+00:00", "updated_at": "2024-01-06T15:34:08.519363+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "d8c22f58-9f99-459d-8507-265f3fd3f200", "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "d8c22f58-9f99-459d-8507-265f3fd3f200", "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"}]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-4d8cf3ac-908c-4e25-9374-ea8a4557bc5a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2024-01-06T15:34:08.508931+00:00", "updated_at": "2024-01-06T15:34:08.519363+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "d8c22f58-9f99-459d-8507-265f3fd3f200", "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "d8c22f58-9f99-459d-8507-265f3fd3f200", "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"}]}]} +API ACL Testing Path get /v1/nodes/detail +GET: /v1/nodes/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-53c86d53-7a49-4fa1-b227-bd868c543da0 +Openstack-Request-Id: req-22e78355-c490-4f15-b7a4-e7fd1add22c9 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": []} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-22e78355-c490-4f15-b7a4-e7fd1add22c9 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": []} +API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 +PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-2e53a6e5-35a9-4a0c-9b43-476377e47b50 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-2e53a6e5-35a9-4a0c-9b43-476377e47b50 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception ... ok +ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped +ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_deploy +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_deploy ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 ... ok +ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync +ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden_no_project +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden_no_project ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_agent_token +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_agent_token ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_033_owner_manager_can_patch_node_extra +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_033_owner_manager_can_patch_node_extra ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_082_nodes_traits_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_082_nodes_traits_get_admin ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_configdrive_vendor_data +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_configdrive_vendor_data ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 ... ok +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_node +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_node ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_steps +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_steps ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_drac +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_drac ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group ... ok +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_083_nodes_traits_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_083_nodes_traits_get_member ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_drac_wsman +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_drac_wsman ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_042_nodes_management_inject_nmi_put_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_042_nodes_management_inject_nmi_put_member ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing ... ok +GOT:{'connectors': [{'connector_id': 'test-connector_id-0', 'links': [{'href': 'http://localhost/v1/volume/connectors/aed70848-4c25-47cc-a18e-5d0ec56c0737', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/aed70848-4c25-47cc-a18e-5d0ec56c0737', 'rel': 'bookmark'}]}, {'connector_id': 'test-connector_id-1', 'links': [{'href': 'http://localhost/v1/volume/connectors/983a13ff-0674-4d7b-8896-536a3da44bf4', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/983a13ff-0674-4d7b-8896-536a3da44bf4', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=983a13ff-0674-4d7b-8896-536a3da44bf4'} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-c48109a4-426a-4256-94c0-93188587f223 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.48 -{"uuid": "29aeba36-b2f5-4619-968e-0d4c85a454bf", "created_at": "2025-02-07T21:28:56.880870+00:00", "updated_at": null, "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", "cpus": "8", "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/29aeba36-b2f5-4619-968e-0d4c85a454bf", "rel": "self"}, {"href": "http://localhost/nodes/29aeba36-b2f5-4619-968e-0d4c85a454bf", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/29aeba36-b2f5-4619-968e-0d4c85a454bf/ports", "rel": "self"}, {"href": "http://localhost/nodes/29aeba36-b2f5-4619-968e-0d4c85a454bf/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/29aeba36-b2f5-4619-968e-0d4c85a454bf/states", "rel": "self"}, {"href": "http://localhost/nodes/29aeba36-b2f5-4619-968e-0d4c85a454bf/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/29aeba36-b2f5-4619-968e-0d4c85a454bf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/29aeba36-b2f5-4619-968e-0d4c85a454bf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/29aeba36-b2f5-4619-968e-0d4c85a454bf/volume", "rel": "self"}, {"href": "http://localhost/nodes/29aeba36-b2f5-4619-968e-0d4c85a454bf/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/278b2e1d-e53b-4f2e-8114-b6f4ac59e12f [{'op': 'remove', 'path': '/protected'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:09.560622+00:00', 'updated_at': None, '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?fields=connector_id,extra {} +GOT:{'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'}]} +GET: /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\": \"\"}"} +GET: /v1/volume/connectors/0b1710a5-2365-4d79-9a83-64d0b29d9e01 {} +GOT:{'uuid': '0b1710a5-2365-4d79-9a83-64d0b29d9e01', 'created_at': '2024-01-06T15:34:10.315836+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/0b1710a5-2365-4d79-9a83-64d0b29d9e01', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/0b1710a5-2365-4d79-9a83-64d0b29d9e01', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/volume/connectors/0b1710a5-2365-4d79-9a83-64d0b29d9e01 {} +GOT:{'uuid': '0b1710a5-2365-4d79-9a83-64d0b29d9e01', 'created_at': '2024-01-06T15:34:10.315836+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/0b1710a5-2365-4d79-9a83-64d0b29d9e01', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/0b1710a5-2365-4d79-9a83-64d0b29d9e01', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /volume/connectors/0b1710a5-2365-4d79-9a83-64d0b29d9e01 {} +GOT:{'uuid': '0b1710a5-2365-4d79-9a83-64d0b29d9e01', 'created_at': '2024-01-06T15:34:10.315836+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/0b1710a5-2365-4d79-9a83-64d0b29d9e01', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/0b1710a5-2365-4d79-9a83-64d0b29d9e01', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/volume/connectors {} +GOT:{'connectors': [{'uuid': '5286302f-18df-4a33-aa24-f5223d5e8879', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/5286302f-18df-4a33-aa24-f5223d5e8879', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/5286302f-18df-4a33-aa24-f5223d5e8879', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '6ffd67c1-cf45-47d2-b18a-ff4a6c69f228', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/6ffd67c1-cf45-47d2-b18a-ff4a6c69f228', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6ffd67c1-cf45-47d2-b18a-ff4a6c69f228', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'eeb6dbd9-0a88-4833-b575-fd12be3e9e1f', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/eeb6dbd9-0a88-4833-b575-fd12be3e9e1f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/eeb6dbd9-0a88-4833-b575-fd12be3e9e1f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '1ee059ca-7205-48e9-a5cb-eb988ff08fc8', 'connector_id': 'test-connector_id-3', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/1ee059ca-7205-48e9-a5cb-eb988ff08fc8', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1ee059ca-7205-48e9-a5cb-eb988ff08fc8', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'adf00ae4-2821-4d3e-81f5-7fe97628f9f9', 'connector_id': 'test-connector_id-4', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/adf00ae4-2821-4d3e-81f5-7fe97628f9f9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/adf00ae4-2821-4d3e-81f5-7fe97628f9f9', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/volume/connectors {} +GOT:{'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'}]} +GET: /v1/volume/connectors {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/volume/connectors?sort_key=uuid {} +GOT:{'connectors': [{'uuid': '45d7efbd-4816-4cd0-a7a4-39e1e0862618', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/45d7efbd-4816-4cd0-a7a4-39e1e0862618', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/45d7efbd-4816-4cd0-a7a4-39e1e0862618', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '894526ad-df41-4bb4-a17d-61b4451078a4', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/894526ad-df41-4bb4-a17d-61b4451078a4', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/894526ad-df41-4bb4-a17d-61b4451078a4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '9bee16fa-198c-458c-8d26-45b1edf43980', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/9bee16fa-198c-458c-8d26-45b1edf43980', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/9bee16fa-198c-458c-8d26-45b1edf43980', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/volume/connectors?sort_key=foo {} +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_034_owner_member_can_patch_node_extra +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_034_owner_member_can_patch_node_extra ... ok +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid ... ok +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot_fail +ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot_fail ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs_drac +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs_drac ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many_non_admin +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many_non_admin ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d7b6be14-65f8-4c1e-a907-db9438c7da87 +Openstack-Request-Id: req-768dd14c-30b3-487c-9f68-829a623d2583 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.48 -{"uuid": "278b2e1d-e53b-4f2e-8114-b6f4ac59e12f", "created_at": "2025-02-07T21:28:57.495734+00:00", "updated_at": null, "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", "cpus": "8", "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/278b2e1d-e53b-4f2e-8114-b6f4ac59e12f", "rel": "self"}, {"href": "http://localhost/nodes/278b2e1d-e53b-4f2e-8114-b6f4ac59e12f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/278b2e1d-e53b-4f2e-8114-b6f4ac59e12f/ports", "rel": "self"}, {"href": "http://localhost/nodes/278b2e1d-e53b-4f2e-8114-b6f4ac59e12f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/278b2e1d-e53b-4f2e-8114-b6f4ac59e12f/states", "rel": "self"}, {"href": "http://localhost/nodes/278b2e1d-e53b-4f2e-8114-b6f4ac59e12f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/278b2e1d-e53b-4f2e-8114-b6f4ac59e12f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/278b2e1d-e53b-4f2e-8114-b6f4ac59e12f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/278b2e1d-e53b-4f2e-8114-b6f4ac59e12f/volume", "rel": "self"}, {"href": "http://localhost/nodes/278b2e1d-e53b-4f2e-8114-b6f4ac59e12f/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/9cff691f-24b2-4fea-ae7c-7ae3851371f1 [{'path': '/protected', 'value': 'True', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:09.426789+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"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-818c5921-c9d5-4129-8288-2483f07f2328 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a4db0f55-711b-4292-9af0-324d3eb486a2 +Openstack-Request-Id: req-6c601bc2-9fc3-4219-8712-1424bcc6be9b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.48 -{"uuid": "9cff691f-24b2-4fea-ae7c-7ae3851371f1", "created_at": "2025-02-07T21:28:58.114330+00:00", "updated_at": null, "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", "cpus": "8", "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/9cff691f-24b2-4fea-ae7c-7ae3851371f1", "rel": "self"}, {"href": "http://localhost/nodes/9cff691f-24b2-4fea-ae7c-7ae3851371f1", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9cff691f-24b2-4fea-ae7c-7ae3851371f1/ports", "rel": "self"}, {"href": "http://localhost/nodes/9cff691f-24b2-4fea-ae7c-7ae3851371f1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9cff691f-24b2-4fea-ae7c-7ae3851371f1/states", "rel": "self"}, {"href": "http://localhost/nodes/9cff691f-24b2-4fea-ae7c-7ae3851371f1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9cff691f-24b2-4fea-ae7c-7ae3851371f1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9cff691f-24b2-4fea-ae7c-7ae3851371f1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9cff691f-24b2-4fea-ae7c-7ae3851371f1/volume", "rel": "self"}, {"href": "http://localhost/nodes/9cff691f-24b2-4fea-ae7c-7ae3851371f1/volume", "rel": "bookmark"}]} -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:57.563332+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:58.097107+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:58.097107+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string_invalid ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system ... ok -GOT:Response: 503 Service Unavailable +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:09.926860+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"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e082787f-e491-4650-8b6e-7c49bab7f2d6 +Openstack-Request-Id: req-503474eb-838b-4019-b99b-f6a1f712fe14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e082787f-e491-4650-8b6e-7c49bab7f2d6 +Openstack-Request-Id: req-2c028840-a75c-4d68-80c7-439ca136cd46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} -GOT:Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:10.444338+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"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-79a81d96-8153-4daf-90e0-6fac01a57ac1 +Openstack-Request-Id: req-4b58b145-93ba-432f-b364-0099a63fb11d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-79a81d96-8153-4daf-90e0-6fac01a57ac1 +Openstack-Request-Id: req-407b183f-0ee8-48fa-a442-c240c878be5f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'boot_index' is a required property\", \"debuginfo\": null}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-091e1c58-9fe8-4422-9128-af42b04ed6c7 +Openstack-Request-Id: req-bee8d744-bcba-4f2c-8cc2-872534ddacb8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:11.180908+00:00", "updated_at": "2024-01-06T15:34:11.187759+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 [{'path': '/extra', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-091e1c58-9fe8-4422-9128-af42b04ed6c7 +Openstack-Request-Id: req-0da900e5-f899-4ea4-97fb-4397c27d68b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} -GOT:Response: 503 Service Unavailable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:11.180908+00:00", "updated_at": "2024-01-06T15:34:11.187759+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"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b16e1262-308d-43d1-8fb1-b369c9556044 +Openstack-Request-Id: req-20105e37-f51d-41b5-88ba-cab0e2248ed7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +{"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}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-6d8dd0e2-32f7-4aa4-bf50-b69b00ae0cbd +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 ... ok +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_getting_current +ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_getting_current ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_084_nodes_traits_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_084_nodes_traits_get_observer ... ok ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b16e1262-308d-43d1-8fb1-b369c9556044 +Openstack-Request-Id: req-01b0b029-10f3-4f51-a3f6-0891d33e173f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} -GOT:Response: 403 Forbidden +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a52b39f6-8c2e-4a6f-802e-6dd1b5e6bfb3 +Openstack-Request-Id: req-f1154705-462d-4600-af97-c89f9dfe5d52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a52b39f6-8c2e-4a6f-802e-6dd1b5e6bfb3 +Openstack-Request-Id: req-f1154705-462d-4600-af97-c89f9dfe5d52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a71202a8-d9ca-40f2-8273-a993210e3f24 +Openstack-Request-Id: req-8658c306-51b8-4850-b575-dfc52c7a0a00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a71202a8-d9ca-40f2-8273-a993210e3f24 +Openstack-Request-Id: req-8658c306-51b8-4850-b575-dfc52c7a0a00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -23109,849 +21117,664 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-96c9e751-73fa-4f2c-94b4-9413e6984fb2 +Openstack-Request-Id: req-b1c8037d-dda5-407f-9417-a95a6062b323 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-96c9e751-73fa-4f2c-94b4-9413e6984fb2 +Openstack-Request-Id: req-b1c8037d-dda5-407f-9417-a95a6062b323 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-2a7660c6-039c-4473-ab90-2b828ef185b6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-2a7660c6-039c-4473-ab90-2b828ef185b6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_043_nodes_management_inject_nmi_put_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_043_nodes_management_inject_nmi_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_032_owner_admin_can_patch_node_extra -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_032_owner_admin_can_patch_node_extra ... ok -ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_cleaning -ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_cleaning ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_default -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_default ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status_no_firmware_upd -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status_no_firmware_upd ... ok -ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_inspecting -ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_inspecting ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_multiple_systems -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_multiple_systems ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_change_physical_disk_state -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_change_physical_disk_state ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_error -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_error ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_raises_ilo_error -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_raises_ilo_error ... ok -ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_none -ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_none ... ok -GOT:Response: 200 OK +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-554e925a-371f-4e6b-95a6-8b11318f3b32 +Openstack-Request-Id: req-80f3c6c7-9201-4e26-a86c-24eeb3631dc5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-02-07T21:28:56.712359+00:00", "updated_at": "2025-02-07T21:28:56.726913+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "6d0c462f-7c54-4bbf-aced-8f04974a356b", "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "6d0c462f-7c54-4bbf-aced-8f04974a356b", "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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-554e925a-371f-4e6b-95a6-8b11318f3b32 +Openstack-Request-Id: req-80f3c6c7-9201-4e26-a86c-24eeb3631dc5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-02-07T21:28:56.712359+00:00", "updated_at": "2025-02-07T21:28:56.726913+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "6d0c462f-7c54-4bbf-aced-8f04974a356b", "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "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, "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": "6d0c462f-7c54-4bbf-aced-8f04974a356b", "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"}]}]} -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ae916e3f-db16-4160-8afc-66864242bf49 +Openstack-Request-Id: req-eb402996-3a2c-4535-a393-106b920ca188 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": []} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ae916e3f-db16-4160-8afc-66864242bf49 +Openstack-Request-Id: req-eb402996-3a2c-4535-a393-106b920ca188 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": []} -API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d3a8f7be-605a-4e7d-bd66-b597532ee80b +Openstack-Request-Id: req-8d7a2868-eef7-48e6-ab53-3e5a404436a4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d3a8f7be-605a-4e7d-bd66-b597532ee80b +Openstack-Request-Id: req-8d7a2868-eef7-48e6-ab53-3e5a404436a4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_082_nodes_traits_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_082_nodes_traits_get_admin ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_access_error_retry -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_access_error_retry ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_https -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_https ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift ... ok -ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_provisioning -ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_provisioning ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config_fail ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:58.554052+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': True, 'protected_reason': 'reason!', 'provision_state': 'active', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/a10ece5a-c994-4a3c-bf08-e71e9f6319b4 {} -GOT:{'uuid': 'a10ece5a-c994-4a3c-bf08-e71e9f6319b4', 'created_at': '2025-02-07T21:28:58.922559+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'active', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': True, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/a10ece5a-c994-4a3c-bf08-e71e9f6319b4', 'rel': 'self'}, {'href': 'http://localhost/nodes/a10ece5a-c994-4a3c-bf08-e71e9f6319b4', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/a10ece5a-c994-4a3c-bf08-e71e9f6319b4/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a10ece5a-c994-4a3c-bf08-e71e9f6319b4/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a10ece5a-c994-4a3c-bf08-e71e9f6319b4/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a10ece5a-c994-4a3c-bf08-e71e9f6319b4/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/a10ece5a-c994-4a3c-bf08-e71e9f6319b4/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/a10ece5a-c994-4a3c-bf08-e71e9f6319b4/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/a10ece5a-c994-4a3c-bf08-e71e9f6319b4/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/a10ece5a-c994-4a3c-bf08-e71e9f6319b4/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/f0febc94-6a9b-4276-a8fd-efbe1f2de5df {} -GOT:{'uuid': 'f0febc94-6a9b-4276-a8fd-efbe1f2de5df', 'created_at': '2025-02-07T21:28:59.115474+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'active', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/f0febc94-6a9b-4276-a8fd-efbe1f2de5df', 'rel': 'self'}, {'href': 'http://localhost/nodes/f0febc94-6a9b-4276-a8fd-efbe1f2de5df', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/f0febc94-6a9b-4276-a8fd-efbe1f2de5df/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f0febc94-6a9b-4276-a8fd-efbe1f2de5df/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f0febc94-6a9b-4276-a8fd-efbe1f2de5df/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f0febc94-6a9b-4276-a8fd-efbe1f2de5df/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/f0febc94-6a9b-4276-a8fd-efbe1f2de5df/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/f0febc94-6a9b-4276-a8fd-efbe1f2de5df/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/f0febc94-6a9b-4276-a8fd-efbe1f2de5df/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/f0febc94-6a9b-4276-a8fd-efbe1f2de5df/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_044_nodes_management_inject_nmi_put_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_044_nodes_management_inject_nmi_put_member ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_attribute_error -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_attribute_error ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_swift -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_swift ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_033_owner_manager_can_patch_node_extra -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_033_owner_manager_can_patch_node_extra ... ok -ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_rescuing -ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_rescuing ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_hidden_in_lower_version ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_connection_error_retry -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_connection_error_retry ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_skip_MAX -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_skip_MAX ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server ... ok -ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_tenant -ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_tenant ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_083_nodes_traits_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_083_nodes_traits_get_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_fail ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:59.746639+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:28:59.746639+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:00.162389+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_not_found -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_not_found ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_reason_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_reason_hidden_in_lower_version ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_realtime -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_realtime ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_045_nodes_management_inject_nmi_put_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_045_nodes_management_inject_nmi_put_reader ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot_not_implemented -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot_not_implemented ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_reboot -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_reboot ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_084_nodes_traits_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_084_nodes_traits_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_034_owner_member_can_patch_node_extra -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_034_owner_member_can_patch_node_extra ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_with_reason -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_with_reason ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready_with_connection_error -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready_with_connection_error ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_file_url -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_file_url ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_046_nodes_states_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_046_nodes_states_get_admin ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_url -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_url ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_with_optional_attrs -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_with_optional_attrs ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok ... ok -PATCH: /v1/nodes/e021c905-4768-48d4-b6e7-8ba892dbd94f [{'path': '/protected', 'value': 'YeahNahGood', 'op': 'replace'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-7c9049aa-11e1-4ab5-a7ee-7158e57f1324 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PATCH: /v1/nodes/427fbe15-9a58-4bd1-bc54-ef71847a71be [{'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-7cdc9d24-1ca3-419b-9568-26d5419c4829 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.48 -{"uuid": "427fbe15-9a58-4bd1-bc54-ef71847a71be", "created_at": "2025-02-07T21:28:59.027981+00:00", "updated_at": null, "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", "cpus": "8", "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/427fbe15-9a58-4bd1-bc54-ef71847a71be", "rel": "self"}, {"href": "http://localhost/nodes/427fbe15-9a58-4bd1-bc54-ef71847a71be", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/427fbe15-9a58-4bd1-bc54-ef71847a71be/ports", "rel": "self"}, {"href": "http://localhost/nodes/427fbe15-9a58-4bd1-bc54-ef71847a71be/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/427fbe15-9a58-4bd1-bc54-ef71847a71be/states", "rel": "self"}, {"href": "http://localhost/nodes/427fbe15-9a58-4bd1-bc54-ef71847a71be/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/427fbe15-9a58-4bd1-bc54-ef71847a71be/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/427fbe15-9a58-4bd1-bc54-ef71847a71be/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/427fbe15-9a58-4bd1-bc54-ef71847a71be/volume", "rel": "self"}, {"href": "http://localhost/nodes/427fbe15-9a58-4bd1-bc54-ef71847a71be/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/6154e920-ed6b-40f1-84fe-46ac13ff47e5 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] -GOT:Response: 200 OK +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-02c06626-982d-4f2d-883a-81a227221bd0 +Openstack-Request-Id: req-3b2bd2a4-942e-42d7-b219-ff2250ee3414 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.21 -{"uuid": "6154e920-ed6b-40f1-84fe-46ac13ff47e5", "created_at": "2025-02-07T21:28:59.832190+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", "cpus": "8", "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/6154e920-ed6b-40f1-84fe-46ac13ff47e5", "rel": "self"}, {"href": "http://localhost/nodes/6154e920-ed6b-40f1-84fe-46ac13ff47e5", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6154e920-ed6b-40f1-84fe-46ac13ff47e5/ports", "rel": "self"}, {"href": "http://localhost/nodes/6154e920-ed6b-40f1-84fe-46ac13ff47e5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6154e920-ed6b-40f1-84fe-46ac13ff47e5/states", "rel": "self"}, {"href": "http://localhost/nodes/6154e920-ed6b-40f1-84fe-46ac13ff47e5/states", "rel": "bookmark"}]} -PATCH: /v1/nodes/9a393e83-516b-433d-aad0-64b7884544b9 [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4f38bfdf-953e-40e3-9849-d02a9148fc91 +Openstack-Request-Id: req-3b2bd2a4-942e-42d7-b219-ff2250ee3414 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.21 -{"uuid": "9a393e83-516b-433d-aad0-64b7884544b9", "created_at": "2025-02-07T21:29:00.311760+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", "cpus": "8", "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/9a393e83-516b-433d-aad0-64b7884544b9", "rel": "self"}, {"href": "http://localhost/nodes/9a393e83-516b-433d-aad0-64b7884544b9", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9a393e83-516b-433d-aad0-64b7884544b9/ports", "rel": "self"}, {"href": "http://localhost/nodes/9a393e83-516b-433d-aad0-64b7884544b9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9a393e83-516b-433d-aad0-64b7884544b9/states", "rel": "self"}, {"href": "http://localhost/nodes/9a393e83-516b-433d-aad0-64b7884544b9/states", "rel": "bookmark"}]} -PATCH: /v1/nodes/3c608230-504d-4ae0-9e98-22e354417eca [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-feb070b5-89dc-429b-b153-71a2524f2f30 +Openstack-Request-Id: req-1375fb28-096b-4367-acbc-5d7200128228 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/67ae44a7-77c2-4a4e-b7bc-3cb6a554e96f [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:00.162389+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:00.724245+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'active', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': True, 'retired_reason': 'warranty expired', 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/9a93024b-7139-47bb-becd-5b028a8a92ca {} -GOT:{'uuid': '9a93024b-7139-47bb-becd-5b028a8a92ca', 'created_at': '2025-02-07T21:29:01.273706+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': 'uefi', 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': True, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/9a93024b-7139-47bb-becd-5b028a8a92ca', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a93024b-7139-47bb-becd-5b028a8a92ca', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/9a93024b-7139-47bb-becd-5b028a8a92ca/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a93024b-7139-47bb-becd-5b028a8a92ca/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/9a93024b-7139-47bb-becd-5b028a8a92ca/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a93024b-7139-47bb-becd-5b028a8a92ca/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/9a93024b-7139-47bb-becd-5b028a8a92ca/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a93024b-7139-47bb-becd-5b028a8a92ca/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/9a93024b-7139-47bb-becd-5b028a8a92ca/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a93024b-7139-47bb-becd-5b028a8a92ca/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/adfb65d6-9633-4f39-af4c-61565f48c7a5 {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_operation -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_operation ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_085_nodes_traits_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_085_nodes_traits_put_admin ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs_drac_wsman +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs_drac_wsman ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron ... ok +ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg +ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_001_values +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_001_values ... skipped 'These are fake reference values for YAML templating' +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_035_owner_reader_cannot_patch_node_extra ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_035_owner_reader_cannot_patch_node_extra ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_047_nodes_states_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_047_nodes_states_get_member ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot_hidden_in_lower_version ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_list_raid_settings -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_list_raid_settings ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags ... ok -GOT:{'uuid': 'adfb65d6-9633-4f39-af4c-61565f48c7a5', 'created_at': '2025-02-07T21:29:01.473083+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': 'uefi', 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': False, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/adfb65d6-9633-4f39-af4c-61565f48c7a5', 'rel': 'self'}, {'href': 'http://localhost/nodes/adfb65d6-9633-4f39-af4c-61565f48c7a5', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/adfb65d6-9633-4f39-af4c-61565f48c7a5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/adfb65d6-9633-4f39-af4c-61565f48c7a5/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/adfb65d6-9633-4f39-af4c-61565f48c7a5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/adfb65d6-9633-4f39-af4c-61565f48c7a5/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/adfb65d6-9633-4f39-af4c-61565f48c7a5/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/adfb65d6-9633-4f39-af4c-61565f48c7a5/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/adfb65d6-9633-4f39-af4c-61565f48c7a5/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/adfb65d6-9633-4f39-af4c-61565f48c7a5/volume', 'rel': 'bookmark'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:01.902837+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:01.902837+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'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': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/states {} -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_power_on -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_power_on ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_086_nodes_traits_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_086_nodes_traits_put_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_set_raid_settings -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_set_raid_settings ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_old_api ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_no_ports_found -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_no_ports_found ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_in_background_task +ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_in_background_task ... ok +ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg +ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_nodes +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_nodes ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_085_nodes_traits_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_085_nodes_traits_put_admin ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_existing +ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_existing ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_internal_info +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_internal_info ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_044_nodes_states_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_044_nodes_states_get_admin ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi ... ok +ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg +ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_002_nodes_post_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_002_nodes_post_admin ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_036_lessee_admin_can_patch_node_extra ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_036_lessee_admin_can_patch_node_extra ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode_fail -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode_fail ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_true -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_true ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_048_nodes_states_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_048_nodes_states_get_reader ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_success -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_success ... ok -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_device -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_device ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_node_already_locked +ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_node_already_locked ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_active +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_active ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_086_nodes_traits_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_086_nodes_traits_put_member ... ok +ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg +ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_045_nodes_states_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_045_nodes_states_get_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_valid +ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_valid ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address +ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node +ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin_no_match +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin_no_match ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_003_nodes_post_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_003_nodes_post_member ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid +ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart ... ok +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_validate_fail +ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_validate_fail ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_087_nodes_traits_put_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_087_nodes_traits_put_observer ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_with_smart_nic_port -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_with_smart_nic_port ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_reason -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_reason ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile_boolean -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile_boolean ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode_hidden_in_lower_version ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false ... ok -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_mode -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_mode ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true ... ok -GOT:Response: 400 Bad Request +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_037_lessee_manager_can_patch_node_extra +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_037_lessee_manager_can_patch_node_extra ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port +ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port ... ok +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_046_nodes_states_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_046_nodes_states_get_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident ... ok +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_worker_pool_full +ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_worker_pool_full ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart_bios +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart_bios ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 ... ok +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_004_nodes_post_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_004_nodes_post_reader ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_088_nodes_traits_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_088_nodes_traits_delete_admin ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_rescue_interface +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_rescue_interface ... ok +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner_no_match +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner_no_match ... ok +ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support +ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_038_lessee_member_can_patch_node_extra +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_038_lessee_member_can_patch_node_extra ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_swift_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_swift_image ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_047_nodes_states_power_put_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_047_nodes_states_power_put_admin ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_01 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_01 ... ok +GET: /v1/ports/21a228cc-85fe-48ca-aeb4-1c23e7d8804c {} +GOT:{'uuid': '21a228cc-85fe-48ca-aeb4-1c23e7d8804c', 'created_at': '2024-01-06T15:34:09.968456+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/21a228cc-85fe-48ca-aeb4-1c23e7d8804c', 'rel': 'self'}, {'href': 'http://foo/ports/21a228cc-85fe-48ca-aeb4-1c23e7d8804c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /ports/21a228cc-85fe-48ca-aeb4-1c23e7d8804c {} +GOT:{'uuid': '21a228cc-85fe-48ca-aeb4-1c23e7d8804c', 'created_at': '2024-01-06T15:34:09.968456+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/21a228cc-85fe-48ca-aeb4-1c23e7d8804c', 'rel': 'self'}, {'href': 'http://foo/ports/21a228cc-85fe-48ca-aeb4-1c23e7d8804c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/ports/detail {} +GOT:{'ports': [{'uuid': 'ab6f103e-f4f3-46a5-b3dd-fa7c82567757', 'created_at': '2024-01-06T15:34:10.238802+00:00', 'updated_at': None, 'address': '66:44:55:33:11:22', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/ab6f103e-f4f3-46a5-b3dd-fa7c82567757', 'rel': 'self'}, {'href': 'http://localhost/ports/ab6f103e-f4f3-46a5-b3dd-fa7c82567757', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/ports {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-08407eb2-d9f1-4d20-b353-4ea409a079f2 +Openstack-Request-Id: req-ff7a97cb-2849-49e0-bbba-1707491af7ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/01f61adb-514c-4cc1-9272-2dd948ef6a22 [{'path': '/retired', 'value': True, 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} +GET: /v1/ports {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c16450d8-0a3e-4073-9f2f-d37ab28a9925 +Openstack-Request-Id: req-0b06cbb2-8d1a-4ffd-9b60-fd92e50bb923 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.61 -{"uuid": "01f61adb-514c-4cc1-9272-2dd948ef6a22", "created_at": "2025-02-07T21:29:01.945887+00:00", "updated_at": null, "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", "cpus": "8", "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/01f61adb-514c-4cc1-9272-2dd948ef6a22", "rel": "self"}, {"href": "http://localhost/nodes/01f61adb-514c-4cc1-9272-2dd948ef6a22", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/01f61adb-514c-4cc1-9272-2dd948ef6a22/ports", "rel": "self"}, {"href": "http://localhost/nodes/01f61adb-514c-4cc1-9272-2dd948ef6a22/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/01f61adb-514c-4cc1-9272-2dd948ef6a22/states", "rel": "self"}, {"href": "http://localhost/nodes/01f61adb-514c-4cc1-9272-2dd948ef6a22/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/01f61adb-514c-4cc1-9272-2dd948ef6a22/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/01f61adb-514c-4cc1-9272-2dd948ef6a22/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/01f61adb-514c-4cc1-9272-2dd948ef6a22/volume", "rel": "self"}, {"href": "http://localhost/nodes/01f61adb-514c-4cc1-9272-2dd948ef6a22/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/ddaff023-9715-42bc-aec5-bea62c07c20f [{'path': '/retired', 'value': True, 'op': 'replace'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} +GET: /v1/ports {} +GOT:{'ports': []} +GET: /v1/ports/detail {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:11.317792+00:00', 'updated_at': None, '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': None, 'pxe_enabled': 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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None}]} +GET: /v1/ports {} +GOT:{'ports': [{'uuid': '33f0602e-9d00-4b2d-a571-fea393863cbd', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/33f0602e-9d00-4b2d-a571-fea393863cbd', 'rel': 'self'}, {'href': 'http://localhost/ports/33f0602e-9d00-4b2d-a571-fea393863cbd', 'rel': 'bookmark'}]}, {'uuid': '16e082ea-8891-4c9e-aa12-f2ecde59ca35', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/16e082ea-8891-4c9e-aa12-f2ecde59ca35', 'rel': 'self'}, {'href': 'http://localhost/ports/16e082ea-8891-4c9e-aa12-f2ecde59ca35', 'rel': 'bookmark'}]}, {'uuid': 'd25ff708-4274-4949-b984-bb196257f4eb', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/d25ff708-4274-4949-b984-bb196257f4eb', 'rel': 'self'}, {'href': 'http://localhost/ports/d25ff708-4274-4949-b984-bb196257f4eb', 'rel': 'bookmark'}]}, {'uuid': 'db7e3822-c683-41e2-9ac4-609e152af6a9', 'address': '52:54:00:cf:2d:33', 'links': [{'href': 'http://localhost/v1/ports/db7e3822-c683-41e2-9ac4-609e152af6a9', 'rel': 'self'}, {'href': 'http://localhost/ports/db7e3822-c683-41e2-9ac4-609e152af6a9', 'rel': 'bookmark'}]}, {'uuid': 'b267bd5e-326b-4719-b93d-974741ebb7c0', 'address': '52:54:00:cf:2d:34', 'links': [{'href': 'http://localhost/v1/ports/b267bd5e-326b-4719-b93d-974741ebb7c0', 'rel': 'self'}, {'href': 'http://localhost/ports/b267bd5e-326b-4719-b93d-974741ebb7c0', 'rel': 'bookmark'}]}]} +GET: /v1/ports {} +GOT:{'ports': [{'uuid': '3fd104c2-5917-4a7c-82a8-6006e35f5404', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/3fd104c2-5917-4a7c-82a8-6006e35f5404', 'rel': 'self'}, {'href': 'http://localhost/ports/3fd104c2-5917-4a7c-82a8-6006e35f5404', 'rel': 'bookmark'}]}, {'uuid': '8cff4dd1-9fe4-4162-8178-58ca4795ff03', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/8cff4dd1-9fe4-4162-8178-58ca4795ff03', 'rel': 'self'}, {'href': 'http://localhost/ports/8cff4dd1-9fe4-4162-8178-58ca4795ff03', 'rel': 'bookmark'}]}]} +GET: /v1/ports {} +GOT:{'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?address=aa:bb:cc:dd:ee:f1 {} +GOT:{'ports': [{'uuid': '21b74206-0fe0-4027-9762-51bc6e509248', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/21b74206-0fe0-4027-9762-51bc6e509248', 'rel': 'self'}, {'href': 'http://localhost/ports/21b74206-0fe0-4027-9762-51bc6e509248', 'rel': 'bookmark'}]}]} +GET: /v1/ports?address=invalid-mac-format {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-9c64bc33-aa51-4afc-aead-1197021fcc95 +Openstack-Request-Id: req-ef6dae24-391e-4865-8619-000bfd5a0b28 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/1262e9bc-830b-4bb8-ac8c-9e473b9df769 [{'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"} +GET: /v1/ports?address=aa:bb:cc:dd:ee:f1 {} +GOT:{'ports': [{'uuid': 'be784098-abe7-441d-9859-5a914b5d9928', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/be784098-abe7-441d-9859-5a914b5d9928', 'rel': 'self'}, {'href': 'http://localhost/ports/be784098-abe7-441d-9859-5a914b5d9928', 'rel': 'bookmark'}]}]} +GET: /v1/ports?address=aa:bb:cc:dd:ee:f1 {} +GOT:{'ports': []} +GET: /v1/ports?address=aa:bb:cc:dd:ee:ff {} +GOT:{'ports': []} +GET: /v1/portgroups/123 123/ports {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-904e4257-dd38-4f6a-88e8-6bdf5d45c96b +{"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 123 123\"}"} +GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/ports?sort_key=uuid {} +GOT:{'ports': [{'uuid': '02fab092-bf9b-4a13-b8fc-6a82cc67eba8', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/02fab092-bf9b-4a13-b8fc-6a82cc67eba8', 'rel': 'self'}, {'href': 'http://localhost/ports/02fab092-bf9b-4a13-b8fc-6a82cc67eba8', 'rel': 'bookmark'}]}, {'uuid': '2ce9ead1-0f44-4ff2-b4c8-870a18a39b64', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/2ce9ead1-0f44-4ff2-b4c8-870a18a39b64', 'rel': 'self'}, {'href': 'http://localhost/ports/2ce9ead1-0f44-4ff2-b4c8-870a18a39b64', 'rel': 'bookmark'}]}, {'uuid': 'f99a07a4-4137-4d13-8a66-30cdcc7399ef', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/f99a07a4-4137-4d13-8a66-30cdcc7399ef', 'rel': 'self'}, {'href': 'http://localhost/ports/f99a07a4-4137-4d13-8a66-30cdcc7399ef', 'rel': 'bookmark'}]}]} +GET: /v1/ports?sort_key=pxe_enabled {} +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_traits +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_traits ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed ... ok +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-c5a38d4b-8816-4af9-acad-5e71490b71fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.61 -{"uuid": "1262e9bc-830b-4bb8-ac8c-9e473b9df769", "created_at": "2025-02-07T21:29:03.422832+00:00", "updated_at": null, "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", "cpus": "8", "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/1262e9bc-830b-4bb8-ac8c-9e473b9df769", "rel": "self"}, {"href": "http://localhost/nodes/1262e9bc-830b-4bb8-ac8c-9e473b9df769", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1262e9bc-830b-4bb8-ac8c-9e473b9df769/ports", "rel": "self"}, {"href": "http://localhost/nodes/1262e9bc-830b-4bb8-ac8c-9e473b9df769/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1262e9bc-830b-4bb8-ac8c-9e473b9df769/states", "rel": "self"}, {"href": "http://localhost/nodes/1262e9bc-830b-4bb8-ac8c-9e473b9df769/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1262e9bc-830b-4bb8-ac8c-9e473b9df769/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1262e9bc-830b-4bb8-ac8c-9e473b9df769/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1262e9bc-830b-4bb8-ac8c-9e473b9df769/volume", "rel": "self"}, {"href": "http://localhost/nodes/1262e9bc-830b-4bb8-ac8c-9e473b9df769/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/0fe14d8a-1ed6-41c4-8f3a-1ba4417f4448 [{'op': 'remove', 'path': '/retired'}] -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_037_lessee_manager_can_patch_node_extra -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_037_lessee_manager_can_patch_node_extra ... ok -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_properties ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_remove -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_remove ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_049_nodes_states_power_put_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_049_nodes_states_power_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_088_nodes_traits_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_088_nodes_traits_delete_admin ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_cdrom -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_cdrom ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false ... ok -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_sensors_data -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_sensors_data ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state_not_implemented -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state_not_implemented ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_bios -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_bios ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent ... ok -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_devices -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_with_reason -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_with_reason ... ok -ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker -ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_true -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_true ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"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 {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-adb9b9d0-6823-450e-a3e3-0b6b2d3e1c30 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0667d132-9b45-459a-b622-4cf6e4c33df7 +Openstack-Request-Id: req-22729c52-1358-4e45-8236-92d5c7e17d4f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0667d132-9b45-459a-b622-4cf6e4c33df7 +Openstack-Request-Id: req-22729c52-1358-4e45-8236-92d5c7e17d4f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} -GOT:Response: 503 Service Unavailable +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9a301e53-0aac-4b8a-8d23-7eca2f4763ea +Openstack-Request-Id: req-db52c2df-7a45-440a-a6e0-76a80a4dd649 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9a301e53-0aac-4b8a-8d23-7eca2f4763ea +Openstack-Request-Id: req-db52c2df-7a45-440a-a6e0-76a80a4dd649 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-eb9c81f0-b90b-4f83-b02c-959de90b2c10 +Openstack-Request-Id: req-f0082f5a-6637-4da8-a34e-e2b5a1e82b5c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-eb9c81f0-b90b-4f83-b02c-959de90b2c10 +Openstack-Request-Id: req-f0082f5a-6637-4da8-a34e-e2b5a1e82b5c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e62a7691-d470-4966-98c3-b256320040a9 +Openstack-Request-Id: req-418f3e4b-e07b-42c8-95d6-2429e3f2f7c3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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} -ACL Test GOT Response: 200 OK +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:14.501875+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +driver +fake-driverz +ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed +ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project_no_match +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project_no_match ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_089_nodes_traits_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_089_nodes_traits_delete_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_005_nodes_get_node_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_005_nodes_get_node_admin ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_02 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_02 ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_039_lessee_reader_cannot_patch_node_extra +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_039_lessee_reader_cannot_patch_node_extra ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_048_nodes_states_power_put_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_048_nodes_states_power_put_member ... ok +ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded +ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipa_debug_rescue +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipa_debug_rescue ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_name +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_03 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_03 ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_instance_image_info +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_instance_image_info ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_090_nodes_traits_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_090_nodes_traits_delete_observer ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e62a7691-d470-4966-98c3-b256320040a9 +Openstack-Request-Id: req-4d7c03c6-b67b-41ab-9751-9d2957e0f388 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} -GOT:Response: 200 OK +{"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}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-54554cee-318a-4c8e-a2ba-5dfa3eda952a +Openstack-Request-Id: req-8f6c3787-e5b6-4d3e-b5b5-8eb59a9de1e8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume target with boot index '100' for the same node already exists.\", \"debuginfo\": null}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 0, 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-54554cee-318a-4c8e-a2ba-5dfa3eda952a +Openstack-Request-Id: req-3d655e8a-8f3c-4de7-b764-c7dd1bc51dca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +{"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}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'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-aa24cfc3-80d0-4b47-9e98-5e676b1b13fd +Openstack-Request-Id: req-14d3de24-ad12-448b-82cf-08b7c4d9bf05 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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} -ACL Test GOT Response: 200 OK +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:12.668971+00:00", "updated_at": "2024-01-06T15:34:12.673857+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"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-aa24cfc3-80d0-4b47-9e98-5e676b1b13fd +Openstack-Request-Id: req-9991bc05-9714-4545-92db-9fe2b7b75d6c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} -GOT:Response: 503 Service Unavailable +{"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}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-99932c03-013e-4857-be9d-7dde5434c02c +Openstack-Request-Id: req-37768a55-7e4a-4ad3-87f1-b14c827ab596 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:13.177834+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"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-99932c03-013e-4857-be9d-7dde5434c02c +Openstack-Request-Id: req-f3a897f4-6d81-4dbb-b946-549e62fc48c3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a1f2a188-e788-45e1-b878-2d8c39f5ddd5 +Openstack-Request-Id: req-1b9e23a9-b25b-428d-9400-ef86bd8e269a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_089_nodes_traits_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_089_nodes_traits_delete_member ... ok -ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free -ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_with_smartnic_port -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_with_smartnic_port ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data ... ok -ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock -ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock ... ok -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_038_lessee_member_can_patch_node_extra -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_038_lessee_member_can_patch_node_extra ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_050_nodes_states_power_put_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_050_nodes_states_power_put_member ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported ... ok -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot_hidden_in_lower_version ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-544390b3-9e70-4ed7-9ed3-995da294cd24 +Openstack-Request-Id: req-b4c1a056-1c46-4d34-8332-88d3cfa7023b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.61 -{"uuid": "0fe14d8a-1ed6-41c4-8f3a-1ba4417f4448", "created_at": "2025-02-07T21:29:04.387656+00:00", "updated_at": null, "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", "cpus": "8", "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/0fe14d8a-1ed6-41c4-8f3a-1ba4417f4448", "rel": "self"}, {"href": "http://localhost/nodes/0fe14d8a-1ed6-41c4-8f3a-1ba4417f4448", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0fe14d8a-1ed6-41c4-8f3a-1ba4417f4448/ports", "rel": "self"}, {"href": "http://localhost/nodes/0fe14d8a-1ed6-41c4-8f3a-1ba4417f4448/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0fe14d8a-1ed6-41c4-8f3a-1ba4417f4448/states", "rel": "self"}, {"href": "http://localhost/nodes/0fe14d8a-1ed6-41c4-8f3a-1ba4417f4448/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0fe14d8a-1ed6-41c4-8f3a-1ba4417f4448/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0fe14d8a-1ed6-41c4-8f3a-1ba4417f4448/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0fe14d8a-1ed6-41c4-8f3a-1ba4417f4448/volume", "rel": "self"}, {"href": "http://localhost/nodes/0fe14d8a-1ed6-41c4-8f3a-1ba4417f4448/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/ff56ea68-8fe0-4eec-8015-940019e5fb5d [{'path': '/retired', 'value': True, 'op': 'replace'}, {'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:13.974013+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"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-59718d94-ea41-4577-8f14-7ca3e2e30e8e +Openstack-Request-Id: req-9b7dcfd1-00ad-456a-8ea8-6882cae82756 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.61 -{"uuid": "ff56ea68-8fe0-4eec-8015-940019e5fb5d", "created_at": "2025-02-07T21:29:05.671292+00:00", "updated_at": null, "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", "cpus": "8", "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/ff56ea68-8fe0-4eec-8015-940019e5fb5d", "rel": "self"}, {"href": "http://localhost/nodes/ff56ea68-8fe0-4eec-8015-940019e5fb5d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ff56ea68-8fe0-4eec-8015-940019e5fb5d/ports", "rel": "self"}, {"href": "http://localhost/nodes/ff56ea68-8fe0-4eec-8015-940019e5fb5d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ff56ea68-8fe0-4eec-8015-940019e5fb5d/states", "rel": "self"}, {"href": "http://localhost/nodes/ff56ea68-8fe0-4eec-8015-940019e5fb5d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ff56ea68-8fe0-4eec-8015-940019e5fb5d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ff56ea68-8fe0-4eec-8015-940019e5fb5d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ff56ea68-8fe0-4eec-8015-940019e5fb5d/volume", "rel": "self"}, {"href": "http://localhost/nodes/ff56ea68-8fe0-4eec-8015-940019e5fb5d/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'power_state': 'new state'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:14.257652+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"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +PATCH: /v1/volume/targets/241d15a3-d453-4dd1-b093-6ebbf9a35346 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-77ce272d-2fdf-4e93-8071-b1d2e7304beb +Openstack-Request-Id: req-b7dbb065-4d28-464b-bbea-172fbdd7c6b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -PATCH: /v1/nodes/67d690ff-f09d-41e9-928b-c0ff7ad00ba8 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id ... ok -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi_fail -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_090_nodes_traits_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_090_nodes_traits_delete_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state ... ok -GOT:{'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'} -GET: /v1/nodes/48553dcb-8d8d-49fc-b22d-cc4f20c75a62/states {} -GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}, 'boot_mode': 'bios', 'secure_boot': None} -GET: /v1/nodes/faff02c1-bf94-432e-9890-b04ebb78e36b/states {} -GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}, 'boot_mode': 'uefi', 'secure_boot': None} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} -GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} -GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}, 'boot_mode': None, 'secure_boot': None} -GET: /v1/nodes/eggs/states {} -GOT:{'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'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:05.090154+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:05.090154+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': '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/states {} -GOT:{'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'}} -GET: /v1/nodes/e963ca91-baa0-4f1c-af58-9dd658f172cf/states {} -GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}, 'boot_mode': 'uefi', 'secure_boot': True} -GET: /v1/nodes/27fb0254-f6de-4bcc-b5c6-d27e053b1bd8/states {} -GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}, 'boot_mode': 'uefi', 'secure_boot': False} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} -GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} -GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}, 'boot_mode': None, 'secure_boot': None} +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 241d15a3-d453-4dd1-b093-6ebbf9a35346 could not be found.\", \"debuginfo\": null}"} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-8f13f323-9f9a-4e88-b057-026a93c270d7 +{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} +GET: / {} +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow ... ok +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits ... ok +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-418f3e4b-e07b-42c8-95d6-2429e3f2f7c3 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:14.501875+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_039_lessee_reader_cannot_patch_node_extra -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_039_lessee_reader_cannot_patch_node_extra ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_051_nodes_states_power_put_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_051_nodes_states_power_put_reader ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_empty_boot_mode_list -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_empty_boot_mode_list ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api ... ok -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_fail -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_indicators -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_indicators ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target ... ok -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device_fail -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-c39a3e7b-ec39-47d0-88f8-feafa1657ea4 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:15.157150+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_driver_info +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_driver_info ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_006_nodes_get_node_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_006_nodes_get_node_member ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_04 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_04 ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_040_third_party_admin_cannot_patch_node_extra +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_040_third_party_admin_cannot_patch_node_extra ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_049_nodes_states_power_put_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_049_nodes_states_power_put_observer ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_owner +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_owner ... ok +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_local_link_connection_none_type +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_local_link_connection_none_type ... ok API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2dc27af9-7929-4db8-99c4-20436baabde8 +Openstack-Request-Id: req-7d43ceab-1e3f-4068-b33a-12e838d74ccc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -23960,7 +21783,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-79ad8276-7da5-4d95-bde1-f45bc6e2590c +Openstack-Request-Id: req-8db70aec-1d14-4c27-91c2-4bde73702edb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -23969,7 +21792,7 @@ 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-6b859780-a907-4c98-abcd-2d6a8d9c46ea +Openstack-Request-Id: req-b69301d9-2de3-4428-ae63-f2d0e42c576c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -23978,7 +21801,7 @@ 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-71acd543-a792-4bf2-b377-5daa608f6fc6 +Openstack-Request-Id: req-757e0bbc-1e81-42ba-b599-a60ed8d6dd8f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -23987,7 +21810,7 @@ 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-bb8c830c-3e95-4cf7-a982-b3d9429b046b +Openstack-Request-Id: req-008fd322-29a4-40d6-8f6b-48207f5d31f8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -23996,7 +21819,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f451acd4-ded7-43b1-ba2d-b3758ef3b219 +Openstack-Request-Id: req-ea7870d5-2745-49f3-beb7-b6feb103ad22 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24005,7 +21828,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bf2c5bdc-4d6c-4730-add9-6deccf242eef +Openstack-Request-Id: req-7e28e099-6d1c-410c-9ea0-42fcf6e1438c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24014,7 +21837,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b29ce633-27f0-4550-8ac5-d88e8762cd28 +Openstack-Request-Id: req-55d02d5a-ee1e-4497-8acb-27aba1893910 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24023,7 +21846,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-95f4a956-639f-4bee-9141-70ba9d29e02d +Openstack-Request-Id: req-00d88179-aae0-4055-97d7-2267fa71e523 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24032,7 +21855,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-75b3f058-fc31-4084-8cc0-23ac782b8d85 +Openstack-Request-Id: req-a4a2e4c7-ad0d-4d14-9323-13a6c3788145 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24041,7 +21864,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d7497744-1259-4c45-a752-6d6c52b2128b +Openstack-Request-Id: req-2baad4d9-5b05-4cb1-a262-f3d8948f9f46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24050,7 +21873,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c88dfe1c-dd82-45d0-9710-b601ada4e832 +Openstack-Request-Id: req-1c14dccb-7e9c-475b-ae3f-b206603f016a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24059,7 +21882,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-75432c66-5171-4109-8eb2-ed0135175169 +Openstack-Request-Id: req-ee720018-a6b4-4667-a2a9-47cccba3ffe5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24068,65 +21891,49 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1a241186-03b7-482c-acac-0d60b18e7756 +Openstack-Request-Id: req-86a9722b-2f8a-4337-9354-505b07342a84 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_05 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_05 ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_instance_info +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_instance_info ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_091_nodes_traits_trait_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_091_nodes_traits_trait_put_admin ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:08.639698+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:08.639698+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:09.230174+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_040_third_party_admin_cannot_patch_node_extra -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_040_third_party_admin_cannot_patch_node_extra ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_list_boot_modes_fail -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_list_boot_modes_fail ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id ... ok -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_052_nodes_states_boot_mode_put_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_052_nodes_states_boot_mode_put_admin ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_empty_boot_mode_list -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_empty_boot_mode_list ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_project +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_project ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive ... ok +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked ... ok API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-65171268-6810-4961-97d6-c4a9a52974ec +Openstack-Request-Id: req-4438fd56-cc3a-448f-9fcb-122d74cf3da0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-65171268-6810-4961-97d6-c4a9a52974ec +Openstack-Request-Id: req-4438fd56-cc3a-448f-9fcb-122d74cf3da0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24135,14 +21942,14 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f97b76f1-2b60-46c8-921b-4c9377ea7063 +Openstack-Request-Id: req-eba1bc0e-e65c-4dd8-8e03-84c74df96484 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f97b76f1-2b60-46c8-921b-4c9377ea7063 +Openstack-Request-Id: req-eba1bc0e-e65c-4dd8-8e03-84c74df96484 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24151,14 +21958,14 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-55c7a38f-bc1a-461f-beb2-4fdc27031895 +Openstack-Request-Id: req-f94c1b52-5ba6-4ca2-98e1-f52b38330c83 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-55c7a38f-bc1a-461f-beb2-4fdc27031895 +Openstack-Request-Id: req-f94c1b52-5ba6-4ca2-98e1-f52b38330c83 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24167,14 +21974,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-da59c5f8-53a7-423d-97d3-55a18a7debe9 +Openstack-Request-Id: req-da27db0a-e4dc-4102-98a2-587434c8b375 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-da59c5f8-53a7-423d-97d3-55a18a7debe9 +Openstack-Request-Id: req-da27db0a-e4dc-4102-98a2-587434c8b375 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24183,14 +21990,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e9b171c3-88ca-4192-94a8-a1b827edc78f +Openstack-Request-Id: req-cd89c03d-a96c-477a-a267-1e9c0a29d246 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e9b171c3-88ca-4192-94a8-a1b827edc78f +Openstack-Request-Id: req-cd89c03d-a96c-477a-a267-1e9c0a29d246 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24199,14 +22006,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-404246e5-3e9a-48f6-915c-4b78da03a054 +Openstack-Request-Id: req-83226f74-4151-4a65-8638-3ccaab4123f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-404246e5-3e9a-48f6-915c-4b78da03a054 +Openstack-Request-Id: req-83226f74-4151-4a65-8638-3ccaab4123f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24215,14 +22022,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-03eff7dd-388d-456a-9720-52de51470253 +Openstack-Request-Id: req-d61c4937-475e-41bc-924b-5917b9652540 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-03eff7dd-388d-456a-9720-52de51470253 +Openstack-Request-Id: req-d61c4937-475e-41bc-924b-5917b9652540 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24231,330 +22038,212 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1398064b-eb2b-44a4-a13b-9eed16d7b155 +Openstack-Request-Id: req-cba52e53-492e-45b9-a50f-9040ee9a38cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1398064b-eb2b-44a4-a13b-9eed16d7b155 +Openstack-Request-Id: req-cba52e53-492e-45b9-a50f-9040ee9a38cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode_fail -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_exception -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_exception ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_092_nodes_traits_trait_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_092_nodes_traits_trait_put_member ... ok -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one_field_specific_santization -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one_field_specific_santization ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc ... ok -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_validate -ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_none_requested -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_none_requested ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default ... ok -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_041_owner_admin_can_change_drivers -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_041_owner_admin_can_change_drivers ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_not_persistent -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_not_persistent ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_053_nodes_states_boot_mode_put_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_053_nodes_states_boot_mode_put_member ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_unsupported -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_unsupported ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_093_nodes_traits_trait_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_093_nodes_traits_trait_put_observer ... ok -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default_not_implemented -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default_not_implemented ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link ... ok -ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task -ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_054_nodes_states_boot_mode_put_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_054_nodes_states_boot_mode_put_reader ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str ... ok -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_source_path -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_source_path ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_094_nodes_traits_trait_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_094_nodes_traits_trait_delete_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_drac_boot_device -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_drac_boot_device ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_042_owner_manager_can_change_drivers -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_042_owner_manager_can_change_drivers ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_compat -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_compat ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode ... ok -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_none_requested -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_none_requested ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version ... ok -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_segmented -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_segmented ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_failure -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_failure ... ok -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:09.230174+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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 {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, '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?fields=uuid,provision_state,maintenance,instance_uuid,last_error {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'provision_state': 'available', 'maintenance': False, 'instance_uuid': None, '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'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} -GOT:{'portgroups': [{'uuid': 'ee68f542-e1e4-4750-a018-b4f0ef86678b', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/ee68f542-e1e4-4750-a018-b4f0ef86678b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/ee68f542-e1e4-4750-a018-b4f0ef86678b', 'rel': 'bookmark'}]}, {'uuid': '337cb4fc-f5ff-4246-b631-c131be37b84d', 'address': '52:54:00:cf:2d:31', 'name': 'pg-1', 'links': [{'href': 'http://localhost/v1/portgroups/337cb4fc-f5ff-4246-b631-c131be37b84d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/337cb4fc-f5ff-4246-b631-c131be37b84d', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups?limit=1 {} -GOT:{'portgroups': [{'uuid': 'ee68f542-e1e4-4750-a018-b4f0ef86678b', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/ee68f542-e1e4-4750-a018-b4f0ef86678b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/ee68f542-e1e4-4750-a018-b4f0ef86678b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=ee68f542-e1e4-4750-a018-b4f0ef86678b'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:10.578489+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-c39a3e7b-ec39-47d0-88f8-feafa1657ea4 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:15.157150+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:10.969576+00:00', 'updated_at': None, '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': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, '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': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': '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/portgroups {} -GOT:Response: 404 Not Found +GOT:Response: 200 OK Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_055_nodes_states_secure_boot_put_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_055_nodes_states_secure_boot_put_admin ... ok -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_095_nodes_traits_trait_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_095_nodes_traits_trait_delete_member ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_job_not_scheduled -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_job_not_scheduled ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_unsupported -ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_unsupported ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_noop -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_noop ... ok -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail ... ok -ironic.tests.unit.drivers.modules.test_image_utils.IloImageHandlerTestCase.test_ilo_kernel_param_config -ironic.tests.unit.drivers.modules.test_image_utils.IloImageHandlerTestCase.test_ilo_kernel_param_config ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_fail -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 ... ok -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_043_owner_member_can_patch_all_the_things -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_043_owner_member_can_patch_all_the_things ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_with_clean_step -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_with_clean_step ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling ... ok -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_096_nodes_traits_trait_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_096_nodes_traits_trait_delete_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_without_clean_step -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_without_clean_step ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_056_nodes_states_secure_boot_put_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_056_nodes_states_secure_boot_put_member ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__check_cipher_suite_errors -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__check_cipher_suite_errors ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_swift_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_swift_image ... ok -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_with_clean_step -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_with_clean_step ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_empty_list -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_empty_list ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found ... ok -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_without_clean_step -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_without_clean_step ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_one_element -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_one_element ... ok -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_097_nodes_vifs_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_097_nodes_vifs_get_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_044_owner_member_can_change_lessee -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_044_owner_member_can_change_lessee ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail_no_change -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail_no_change ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_false -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_false ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_2_disk_and_raid_level_1 -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_2_disk_and_raid_level_1 ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_057_nodes_states_secure_boot_put_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_057_nodes_states_secure_boot_put_reader ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_returns_last_to_first -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_returns_last_to_first ... ok +Openstack-Request-Id: req-27cec5bd-ba36-45f5-8606-b9cef3cd0717 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:15.753693+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +driver +fake-driverz +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_007_nodes_get_node_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_007_nodes_get_node_reader ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_with_default +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_with_default ... ok +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_050_nodes_states_boot_mode_put_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_050_nodes_states_boot_mode_put_admin ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_07 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_07 ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_041_owner_admin_can_change_drivers +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_041_owner_admin_can_change_drivers ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_092_nodes_traits_trait_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_092_nodes_traits_trait_put_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_bios +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_bios ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_008_nodes_get_node_other_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_008_nodes_get_node_other_admin ... skipped 'Not implemented yet' +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_08 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_08 ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail ... ok -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_10 -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_10 ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_instance_image_info -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_instance_image_info ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_true -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_true ... ok -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistence_fallback -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistence_fallback ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_098_nodes_vifs_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_098_nodes_vifs_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_045_lessee_admin_cannot_change_lessee -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_045_lessee_admin_cannot_change_lessee ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy ... ok -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner_no_match +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner_no_match ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_vendor_data_failed +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_vendor_data_failed ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks ... ok +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow ... ok +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-1375fb28-096b-4367-acbc-5d7200128228 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-36ef3dbe-0f9a-4034-a94e-78c8e63f10ec +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-36ef3dbe-0f9a-4034-a94e-78c8e63f10ec +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-d715baf8-22af-4a5d-8422-8ba0e22c303e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-d715baf8-22af-4a5d-8422-8ba0e22c303e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-384d58b9-09c5-4db3-9294-6abc0f3a8bb5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-384d58b9-09c5-4db3-9294-6abc0f3a8bb5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-eec5ecd9-8954-41f9-a362-31783d447658 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a1f2a188-e788-45e1-b878-2d8c39f5ddd5 +Openstack-Request-Id: req-eec5ecd9-8954-41f9-a362-31783d447658 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-47a108ba-69ff-4579-b00e-ee39ed89341f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-47a108ba-69ff-4579-b00e-ee39ed89341f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7ee04025-c089-45a7-a676-478adf31bdcd +Openstack-Request-Id: req-62bd1c73-a7e8-4b6f-871d-ac5b7b1b3b85 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7ee04025-c089-45a7-a676-478adf31bdcd +Openstack-Request-Id: req-62bd1c73-a7e8-4b6f-871d-ac5b7b1b3b85 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24563,324 +22252,661 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c8e4654c-a1f9-4cd8-b7e9-33db85654a78 +Openstack-Request-Id: req-e0a80784-1c92-4c5d-88ad-3a0ed6f46da3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c8e4654c-a1f9-4cd8-b7e9-33db85654a78 +Openstack-Request-Id: req-e0a80784-1c92-4c5d-88ad-3a0ed6f46da3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} -GOT:Response: 503 Service Unavailable +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_ipa_debug +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_ipa_debug ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_051_nodes_states_boot_mode_put_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_051_nodes_states_boot_mode_put_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_093_nodes_traits_trait_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_093_nodes_traits_trait_put_observer ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_empty +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_empty ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project_no_match +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project_no_match ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port ... ok +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_009_nodes_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_009_nodes_get_admin ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_target_unsupported +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_target_unsupported ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_local_boot +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_local_boot ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_version_older +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_version_older ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist ... ok +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_042_owner_manager_can_change_drivers +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_042_owner_manager_can_change_drivers ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_11 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_11 ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_094_nodes_traits_trait_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_094_nodes_traits_trait_delete_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_052_nodes_states_boot_mode_put_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_052_nodes_states_boot_mode_put_observer ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_010_nodes_get_other_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_010_nodes_get_other_admin ... skipped 'Not implemented yet' +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs_fail ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 ... ok +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner_no_match +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner_no_match ... ok +GOT:{'ports': [{'uuid': '8e2c9dbd-1ecf-4d46-9ef9-01893598f1b6', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/8e2c9dbd-1ecf-4d46-9ef9-01893598f1b6', 'rel': 'self'}, {'href': 'http://localhost/ports/8e2c9dbd-1ecf-4d46-9ef9-01893598f1b6', 'rel': 'bookmark'}]}, {'uuid': '218c28ea-59ba-4bd7-80e5-47c3c8208caa', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/218c28ea-59ba-4bd7-80e5-47c3c8208caa', 'rel': 'self'}, {'href': 'http://localhost/ports/218c28ea-59ba-4bd7-80e5-47c3c8208caa', 'rel': 'bookmark'}]}]} +GET: /v1/ports?sort_key=foo {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8a184cb1-832f-44fb-8da4-5db3acc3dce5 +Openstack-Request-Id: req-44d06088-7115-466a-8e9a-d714e36e5705 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/ports?sort_key=extra {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8a184cb1-832f-44fb-8da4-5db3acc3dce5 +Openstack-Request-Id: req-7ee253a8-8f8f-4f8d-9f4d-2a2f354d2b6c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} -GOT:Response: 403 Forbidden +{"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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-fe9a07f6-58cc-43f0-a938-9076a31ece6a +Openstack-Request-Id: req-5d11a1a8-57ba-422b-984f-39542c27ae76 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-fe9a07f6-58cc-43f0-a938-9076a31ece6a +Openstack-Request-Id: req-24a71ed1-7c49-46aa-a6ef-12f1792c9233 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value local_link_connection is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/ports?sort_key=pxe_enabled {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-f9cedf3c-abd1-40b6-8622-a323836cd4a9 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-c7b2319b-6c3e-4885-b997-65f8a036bde0 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-60e128bb-3ef7-4533-8c1e-6ab5a127f003 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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': None, 'pxe_enabled': 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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-c7b2319b-6c3e-4885-b997-65f8a036bde0 +Openstack-Request-Id: req-ad46b931-16b5-4749-92de-e5836665b8af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address AA:AA:AA:11:22:33 already exists.\", \"debuginfo\": null}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-4b2f8967-4955-4b9c-a12d-a2e3ba190842 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-1fa8fb7e-ccc1-4c93-be1f-b127b2ff43ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:17.387293+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:17.387293+00:00', 'updated_at': None, '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': None, 'pxe_enabled': 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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_opts_ramdisk_opt +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_opts_ramdisk_opt ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_13 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_13 ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id ... ok +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_095_nodes_traits_trait_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_095_nodes_traits_trait_delete_member ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_053_nodes_states_secure_boot_put_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_053_nodes_states_secure_boot_put_admin ... ok +ironic.tests.unit.api.test_method.TestExpose.test_exception +ironic.tests.unit.api.test_method.TestExpose.test_exception ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_14 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_14 ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project_no_match +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project_no_match ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_rescue +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_rescue ... ok +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4b2f8967-4955-4b9c-a12d-a2e3ba190842 +Openstack-Request-Id: req-27cec5bd-ba36-45f5-8606-b9cef3cd0717 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} -GOT:Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:15.753693+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9f3f08d9-5022-4024-ae68-304a81d6f5ca +Openstack-Request-Id: req-335301dd-3b19-45b8-93fd-fa665b7e58e4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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": "976e9b31-9d22-443e-a461-c111039726b4", "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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9f3f08d9-5022-4024-ae68-304a81d6f5ca +Openstack-Request-Id: req-335301dd-3b19-45b8-93fd-fa665b7e58e4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} -GOT:Response: 503 Service Unavailable +{"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": "976e9b31-9d22-443e-a461-c111039726b4", "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"}]}]} +API ACL Testing Path get /v1/nodes/detail +GET: /v1/nodes/detail {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ee51d3bb-e848-4f0d-b793-044df1a0e830 +Openstack-Request-Id: req-91cba6de-d5ee-4bba-98b5-163c86ca236a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_invalid_raid_level -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_invalid_raid_level ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_ilo_error -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_ilo_error ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_error_noconfig -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_error_noconfig ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_all_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_all_steps ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_058_nodes_states_provision_put_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_058_nodes_states_provision_put_admin ... ok -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info ... ok -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_not_supported -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_not_supported ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_no_change -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_no_change ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_099_nodes_vifs_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_099_nodes_vifs_get_observer ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_046_lessee_manager_cannot_change_lessee -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_046_lessee_manager_cannot_change_lessee ... ok -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on ... ok -GOT:{'ports': [{'uuid': '1b36fe0e-0f83-4f1a-b145-6c793e5dbe36', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/1b36fe0e-0f83-4f1a-b145-6c793e5dbe36', 'rel': 'self'}, {'href': 'http://localhost/ports/1b36fe0e-0f83-4f1a-b145-6c793e5dbe36', 'rel': 'bookmark'}]}, {'uuid': 'c3aee942-b288-4f85-a385-0e8437e6a6b1', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/c3aee942-b288-4f85-a385-0e8437e6a6b1', 'rel': 'self'}, {'href': 'http://localhost/ports/c3aee942-b288-4f85-a385-0e8437e6a6b1', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 {} -GOT:{'ports': [{'uuid': '1b36fe0e-0f83-4f1a-b145-6c793e5dbe36', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/1b36fe0e-0f83-4f1a-b145-6c793e5dbe36', 'rel': 'self'}, {'href': 'http://localhost/ports/1b36fe0e-0f83-4f1a-b145-6c793e5dbe36', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=1b36fe0e-0f83-4f1a-b145-6c793e5dbe36'} -GET: /v1/nodes/123 123/ports {} -GOT:Response: 400 Bad Request +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:17.792993+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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-01-06T15:34:17.797324+00:00", "updated_at": "2024-01-06T15:34:17.802139+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "c9f4536a-2709-4bc9-b39d-7730e2cb59a4", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "c9f4536a-2709-4bc9-b39d-7730e2cb59a4", "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-01-06T15:34:17.820754+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -{"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for node: 123 123\"}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:14.348380+00:00', 'updated_at': None, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': None, 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': '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/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} -GOT:Response: 404 Not Found +Openstack-Request-Id: req-91cba6de-d5ee-4bba-98b5-163c86ca236a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:17.792993+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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-01-06T15:34:17.797324+00:00", "updated_at": "2024-01-06T15:34:17.802139+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "c9f4536a-2709-4bc9-b39d-7730e2cb59a4", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "c9f4536a-2709-4bc9-b39d-7730e2cb59a4", "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-01-06T15:34:17.820754+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]}ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_011_nodes_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_011_nodes_detail_get_admin ... ok +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_043_owner_member_can_patch_all_the_things +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_043_owner_member_can_patch_all_the_things ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error ... ok +ironic.tests.unit.api.test_method.TestExpose.test_expose +ironic.tests.unit.api.test_method.TestExpose.test_expose ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist ... ok +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_15 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_15 ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_096_nodes_traits_trait_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_096_nodes_traits_trait_delete_observer ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate ... ok +ironic.tests.unit.api.test_method.TestExpose.test_expose_validation +ironic.tests.unit.api.test_method.TestExpose.test_expose_validation ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port +ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue ... ok +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_054_nodes_states_secure_boot_put_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_054_nodes_states_secure_boot_put_member ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address +ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address ... ok + +API ACL Testing Path get /v1/nodes/detail +GET: /v1/nodes/detail {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cec014e4-ff19-4875-b263-88b5b3cc45b4 +Openstack-Request-Id: req-dce7d1ce-23f7-4d71-a703-6a652ad09515 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/ports {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:18.430997+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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-01-06T15:34:18.435471+00:00", "updated_at": "2024-01-06T15:34:18.440650+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "d9158df8-cee0-4c4d-92dd-2f8a959339e6", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "d9158df8-cee0-4c4d-92dd-2f8a959339e6", "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-01-06T15:34:18.459777+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} -GOT:Response: 403 Forbidden +Openstack-Request-Id: req-dce7d1ce-23f7-4d71-a703-6a652ad09515 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:18.430997+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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-01-06T15:34:18.435471+00:00", "updated_at": "2024-01-06T15:34:18.440650+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "d9158df8-cee0-4c4d-92dd-2f8a959339e6", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "d9158df8-cee0-4c4d-92dd-2f8a959339e6", "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-01-06T15:34:18.459777+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]}ironic.tests.unit.api.test_method.TestExpose.test_post_body +ironic.tests.unit.api.test_method.TestExpose.test_post_body ... ok +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_012_nodes_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_012_nodes_detail_get_member ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ramdisk_params +ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ramdisk_params ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid +ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid ... ok +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_044_owner_member_can_change_lessee +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_044_owner_member_can_change_lessee ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok ... ok +ironic.tests.unit.api.test_method.TestExpose.test_post_body_validation +ironic.tests.unit.api.test_method.TestExpose.test_post_body_validation ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_097_nodes_vifs_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_097_nodes_vifs_get_admin ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue_bios +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue_bios ... ok +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_055_nodes_states_secure_boot_put_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_055_nodes_states_secure_boot_put_observer ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail ... ok +ironic.tests.unit.api.test_method.TestExpose.test_response_204 +ironic.tests.unit.api.test_method.TestExpose.test_response_204 ... ok +ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env +ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist ... ok +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_empty_string +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_empty_string ... ok + +API ACL Testing Path get /v1/nodes/detail +GET: /v1/nodes/detail {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8fb8eb56-5ab1-42e4-86f4-276bc7bade06 +Openstack-Request-Id: req-df33cc27-5ea5-423a-9be7-25f837e5b0c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes?sort_key=uuid {} -GOT:{'nodes': [{'uuid': '897d46c8-ec19-459f-a3a3-c883bb5a3481', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/897d46c8-ec19-459f-a3a3-c883bb5a3481', 'rel': 'self'}, {'href': 'http://localhost/nodes/897d46c8-ec19-459f-a3a3-c883bb5a3481', 'rel': 'bookmark'}]}, {'uuid': 'fce233f8-74dc-4216-8703-960e83400aea', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/fce233f8-74dc-4216-8703-960e83400aea', 'rel': 'self'}, {'href': 'http://localhost/nodes/fce233f8-74dc-4216-8703-960e83400aea', 'rel': 'bookmark'}]}, {'uuid': 'fe76891e-d5f9-484c-b818-546c9369dafe', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/fe76891e-d5f9-484c-b818-546c9369dafe', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe76891e-d5f9-484c-b818-546c9369dafe', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?sort_key=resource_class {} -GOT:{'nodes': [{'uuid': '4a3fed4b-1097-4b3f-8e49-1a07cebaa3ea', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/4a3fed4b-1097-4b3f-8e49-1a07cebaa3ea', 'rel': 'self'}, {'href': 'http://localhost/nodes/4a3fed4b-1097-4b3f-8e49-1a07cebaa3ea', 'rel': 'bookmark'}]}, {'uuid': 'f76a1656-73a4-48dd-88b7-808c2294b594', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/f76a1656-73a4-48dd-88b7-808c2294b594', 'rel': 'self'}, {'href': 'http://localhost/nodes/f76a1656-73a4-48dd-88b7-808c2294b594', 'rel': 'bookmark'}]}, {'uuid': 'ffb77989-e5e6-4331-8c6c-b061fb370791', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/ffb77989-e5e6-4331-8c6c-b061fb370791', 'rel': 'self'}, {'href': 'http://localhost/nodes/ffb77989-e5e6-4331-8c6c-b061fb370791', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?sort_key=foo {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:19.051822+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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-01-06T15:34:19.055528+00:00", "updated_at": "2024-01-06T15:34:19.060412+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "5ff9053b-200d-495f-924f-c65a5111658e", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "5ff9053b-200d-495f-924f-c65a5111658e", "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-01-06T15:34:19.081282+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7882509e-0eb0-45d3-914a-9103453ed3c5 +Openstack-Request-Id: req-df33cc27-5ea5-423a-9be7-25f837e5b0c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} -GET: /v1/nodes?sort_key=properties {} -GOT:Response: 400 Bad Request +{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:19.051822+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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-01-06T15:34:19.055528+00:00", "updated_at": "2024-01-06T15:34:19.060412+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "5ff9053b-200d-495f-924f-c65a5111658e", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "5ff9053b-200d-495f-924f-c65a5111658e", "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-01-06T15:34:19.081282+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]}ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_013_nodes_detail_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_013_nodes_detail_get_reader ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_grub_mac_path +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_grub_mac_path ... ok +ironic.tests.unit.api.test_method.TestExpose.test_response_content +ironic.tests.unit.api.test_method.TestExpose.test_response_content ... ok +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_045_lessee_admin_cannot_change_lessee +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_045_lessee_admin_cannot_change_lessee ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_098_nodes_vifs_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_098_nodes_vifs_get_member ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text ... ok +ironic.tests.unit.api.test_method.TestExpose.test_response_custom_status +ironic.tests.unit.api.test_method.TestExpose.test_response_custom_status ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root ... ok +ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_clean_dhcp_opts +ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_clean_dhcp_opts ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info ... ok +ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure +ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_056_nodes_states_provision_put_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_056_nodes_states_provision_put_admin ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path ... ok +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-b4440bb7-33a9-45dd-8a19-dfdfa1ec7ae3 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-d8985b5c-18fb-43b9-a427-72aa53cc7526 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:17.736559+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:17.736559+00:00', 'updated_at': None, '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': None, 'pxe_enabled': 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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-d170dc08-5e4f-4563-b855-8483669566fb +Openstack-Request-Id: req-3f1c6363-56bb-41f5-b95f-c439ca95c9de X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/ports/d3f85d99-cc08-4e98-87cb-ae5aac8df597 +Openstack-Request-Id: req-e216c40b-43f3-481e-8da4-0dedeb3b5466 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "d3f85d99-cc08-4e98-87cb-ae5aac8df597", "created_at": "2024-01-06T15:34:18.471677+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, "links": [{"href": "http://localhost/v1/ports/d3f85d99-cc08-4e98-87cb-ae5aac8df597", "rel": "self"}, {"href": "http://localhost/ports/d3f85d99-cc08-4e98-87cb-ae5aac8df597", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +GET: /v1/ports/d3f85d99-cc08-4e98-87cb-ae5aac8df597 {} +GOT:{'uuid': 'd3f85d99-cc08-4e98-87cb-ae5aac8df597', 'created_at': '2024-01-06T15:34:18.471677+00:00', 'updated_at': None, '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': None, 'pxe_enabled': True, 'links': [{'href': 'http://localhost/v1/ports/d3f85d99-cc08-4e98-87cb-ae5aac8df597', 'rel': 'self'}, {'href': 'http://localhost/ports/d3f85d99-cc08-4e98-87cb-ae5aac8df597', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-167f446d-f36f-426c-902c-58b222eef4e9 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/ports {'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, 'node_uuid': 'invalid-format', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6a6beb38-af91-4261-90ac-524c20f8f5b7 +Openstack-Request-Id: req-a4736d4d-c2f9-4951-a06c-0086f4957181 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/ports {'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': '', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-0ff51451-b4d6-4e20-8d18-dab614aa0d8e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"} +POST: /v1/ports {'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': 1234, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-98410b3d-f494-4292-8496-f91c93be8932 +Openstack-Request-Id: req-2d20557e-4f2c-4a40-9819-604eb701e0c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_scheme_http -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_scheme_http ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception ... ok -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_root_only -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_root_only ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_and_user_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_and_user_steps ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_vendor -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_vendor ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_059_nodes_states_provision_put_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_059_nodes_states_provision_put_member ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok ... ok -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"} +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_deprecated +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_deprecated ... ok +ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled +ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_clear_job_queue +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_clear_job_queue ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk ... ok +ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value +ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_014_nodes_node_ident_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_014_nodes_node_ident_get_admin ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share ... ok +ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled +ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_046_lessee_manager_cannot_change_lessee +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_046_lessee_manager_cannot_change_lessee ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_099_nodes_vifs_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_099_nodes_vifs_get_observer ... ok +ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses +ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe ... ok +ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok +ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_057_nodes_states_provision_put_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_057_nodes_states_provision_put_member ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ +ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel ... ok +ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_skip_missing +ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_skip_missing ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_conf +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_conf ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object +ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ... ok + +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-e9070e0e-f2dd-41d5-85b9-c3ae9557b07c +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:19.663667+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-e9070e0e-f2dd-41d5-85b9-c3ae9557b07c +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:19.663667+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_100_nodes_vifs_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_100_nodes_vifs_post_admin ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_steps ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep ... ok -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_all_steps -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_all_steps ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_driver_info +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_driver_info ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_015_nodes_node_ident_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_015_nodes_node_ident_get_member ... ok +ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp +ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails +ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_047_lessee_admin_cannot_change_owner ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_047_lessee_admin_cannot_change_owner ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address ... ok -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_pending_delete -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_pending_delete ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive ... ok -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_060_nodes_states_provision_put_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_060_nodes_states_provision_put_reader ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_try_different_cipher_suite -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_try_different_cipher_suite ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_058_nodes_states_provision_put_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_058_nodes_states_provision_put_observer ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device_from_driver_internal_info +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device_from_driver_internal_info ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception ... ok +ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base +ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails +ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object +ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_101_nodes_vifs_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_101_nodes_vifs_post_member ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_with_more_than_min_disks_for_raid_level -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_with_more_than_min_disks_for_raid_level ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid ... ok PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'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-8a3ac3d2-9d1d-4629-bb76-32e4aca1a38e +Openstack-Request-Id: req-f0cdf887-fa3f-4dce-b6e9-4c88fc588bac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-8a3ac3d2-9d1d-4629-bb76-32e4aca1a38e +Openstack-Request-Id: req-f0cdf887-fa3f-4dce-b6e9-4c88fc588bac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24889,14 +22915,14 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'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-efdd0767-f226-433c-98c6-92d03ec7ca23 +Openstack-Request-Id: req-c7cb020d-93ba-4966-aa3f-67031008e608 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-efdd0767-f226-433c-98c6-92d03ec7ca23 +Openstack-Request-Id: req-c7cb020d-93ba-4966-aa3f-67031008e608 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24905,14 +22931,14 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'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-7be5782f-3a61-4d21-a53f-60d64ddc4ee6 +Openstack-Request-Id: req-eceba7c7-4cdf-4234-8efe-ee5b9accfda9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7be5782f-3a61-4d21-a53f-60d64ddc4ee6 +Openstack-Request-Id: req-eceba7c7-4cdf-4234-8efe-ee5b9accfda9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24921,14 +22947,14 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/lessee', 'value': '198566a5-a609-4463-9800-e8920be7c2fa'}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ba8312bd-c27e-4263-9422-184ec7af8a8f +Openstack-Request-Id: req-b96293ed-a4fe-4bac-afaa-c65b8204f91e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ba8312bd-c27e-4263-9422-184ec7af8a8f +Openstack-Request-Id: req-b96293ed-a4fe-4bac-afaa-c65b8204f91e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24937,14 +22963,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/lessee', 'value': '1234'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-00b588fb-6ef8-4d43-9cf9-deb0f08339e5 +Openstack-Request-Id: req-b772669a-3045-4d0f-b794-5d5e060876d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-00b588fb-6ef8-4d43-9cf9-deb0f08339e5 +Openstack-Request-Id: req-b772669a-3045-4d0f-b794-5d5e060876d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24953,14 +22979,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/lessee', 'value': '1234'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-51cb0278-f89d-4e8d-97b7-a189fefe0477 +Openstack-Request-Id: req-03cf5c53-56c8-4d4e-bd42-93cd259a794a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-51cb0278-f89d-4e8d-97b7-a189fefe0477 +Openstack-Request-Id: req-03cf5c53-56c8-4d4e-bd42-93cd259a794a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24969,14 +22995,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/owner', 'value': '1234'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3b2f9a54-e37a-4789-8566-e35130c6d18b +Openstack-Request-Id: req-8a524881-dbc6-4baf-a185-3154e5826593 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3b2f9a54-e37a-4789-8566-e35130c6d18b +Openstack-Request-Id: req-8a524881-dbc6-4baf-a185-3154e5826593 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -24985,250 +23011,409 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/owner', 'value': '1234'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ab121027-9456-470e-9a6c-ab011a6f23b0 +Openstack-Request-Id: req-b42ac7a0-1cc3-4e74-9f67-6e27fcfcdf2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-7feca7fd-4c5f-4172-a11b-7aa64b9402d6 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:20.310811+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-7feca7fd-4c5f-4172-a11b-7aa64b9402d6 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:20.310811+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_patient +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_patient ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc +ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_sensors_data +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_sensors_data ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_048_lessee_manager_cannot_change_owner ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_048_lessee_manager_cannot_change_owner ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_unsupported -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_unsupported ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_driver_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_driver_steps ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__validate_volume_size_requested_less_than_actual_size -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__validate_volume_size_requested_less_than_actual_size ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_user_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_user_steps ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_without_params -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_without_params ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_016_nodes_node_ident_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_016_nodes_node_ident_get_reader ... ok +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-d6e03949-81fb-44cb-9be4-959b720203c5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-d6e03949-81fb-44cb-9be4-959b720203c5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-4cb232b5-ed01-4a32-aa9a-25c4095a12dc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-4cb232b5-ed01-4a32-aa9a-25c4095a12dc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-1b179e24-42cf-4fb1-8f45-fa82e886cc3d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-1b179e24-42cf-4fb1-8f45-fa82e886cc3d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-6f44a806-c228-4a36-be24-6c9d13494780 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-6f44a806-c228-4a36-be24-6c9d13494780 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-70a31d7d-c23b-4b74-8492-c64d4ba9cf02 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-70a31d7d-c23b-4b74-8492-c64d4ba9cf02 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-b048d815-f1b5-41a9-b3fa-4868f5698ad1 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-b048d815-f1b5-41a9-b3fa-4868f5698ad1 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-83daa90d-2236-4098-b59a-7cdd4df6696a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-83daa90d-2236-4098-b59a-7cdd4df6696a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-aa7f56f2-f6ce-4206-9ceb-e5206d4e4209 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-aa7f56f2-f6ce-4206-9ceb-e5206d4e4209 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_ipv6 +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_ipv6 ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_059_nodes_states_raid_put_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_059_nodes_states_raid_put_admin ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found +ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe_anaconda +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe_anaconda ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_deprecated +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_deprecated ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_supported_boot_devices +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_supported_boot_devices ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url +ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_102_nodes_vifs_post_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_102_nodes_vifs_post_observer ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__validate_volume_size_requested_more_than_actual_size -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__validate_volume_size_requested_more_than_actual_size ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_061_nodes_states_raid_put_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_061_nodes_states_raid_put_admin ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__volume_usage_per_disk_mb -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__volume_usage_per_disk_mb ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_and_driver_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_and_driver_steps ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_049_owner_admin_can_change_lessee -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_049_owner_admin_can_change_lessee ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__change_physical_disk_state_attribute_error -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__change_physical_disk_state_attribute_error ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_fails -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_fails ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_103_nodes_vifs_node_vif_ident_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_103_nodes_vifs_node_vif_ident_delete_admin ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries_multiple -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries_multiple ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_062_nodes_states_raid_put_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_062_nodes_states_raid_put_member ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_incorrect -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_incorrect ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_template_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_template_steps ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_deprecated -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_deprecated ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timeout -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timeout ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_050_owner_manager_can_change_lessee -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_050_owner_manager_can_change_lessee ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_member ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_no_change -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_no_change ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_skip_missing -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_skip_missing ... ok -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_063_nodes_states_raid_put_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_063_nodes_states_raid_put_reader ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid ... ok -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_unknown -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_unknown ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_template_and_driver_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_template_and_driver_steps ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs_fail ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_boot_iso +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_boot_iso ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object +ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs ... ok +POST: /v1/ports {'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': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-25367a73-7a1d-454f-a1e7-ded215324182 +Openstack-Request-Id: req-4618d316-109c-44dc-ab7e-e687dbd6b648 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"} +POST: /v1/ports {'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': 'Ethernet1/15', 'switch_info': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-729af04c-5646-4fcf-bcf6-34a9d1a32f1d +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-1b4de729-f244-4229-a9f0-bbdf46c87035 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:20.038747+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +POST: /v1/ports {'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', 'switch_info': 'fooswitch'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-63974758-f730-45f9-9e28-fd3f46e60e59 +Openstack-Request-Id: req-02ba24b7-95a7-46dc-933b-6f1626c57e5b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\", \"debuginfo\": null}"} -GET: /v1/nodes?sort_key=resource_class {} -GOT:Response: 406 Not Acceptable +{"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}"} +POST: /v1/ports {'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': 'Ethernet1/15'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-4e1941e2-a06f-43df-a2db-27bfa124ae52 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-dc12402f-a165-4363-9586-0296f62eb16c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes?associated=false {} -GOT:{'nodes': [{'uuid': 'bd7c3175-5ae9-4e49-af67-2dde76dfd4cc', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/bd7c3175-5ae9-4e49-af67-2dde76dfd4cc', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd7c3175-5ae9-4e49-af67-2dde76dfd4cc', 'rel': 'bookmark'}]}, {'uuid': '91c007fb-adf1-4f94-a84f-560ca77c5575', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/91c007fb-adf1-4f94-a84f-560ca77c5575', 'rel': 'self'}, {'href': 'http://localhost/nodes/91c007fb-adf1-4f94-a84f-560ca77c5575', 'rel': 'bookmark'}]}, {'uuid': 'd4ad1bd1-e4dc-4ba6-9511-c3013e2a0643', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/d4ad1bd1-e4dc-4ba6-9511-c3013e2a0643', 'rel': 'self'}, {'href': 'http://localhost/nodes/d4ad1bd1-e4dc-4ba6-9511-c3013e2a0643', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=FALSE {} -GOT:{'nodes': [{'uuid': 'bd7c3175-5ae9-4e49-af67-2dde76dfd4cc', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/bd7c3175-5ae9-4e49-af67-2dde76dfd4cc', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd7c3175-5ae9-4e49-af67-2dde76dfd4cc', 'rel': 'bookmark'}]}, {'uuid': '91c007fb-adf1-4f94-a84f-560ca77c5575', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/91c007fb-adf1-4f94-a84f-560ca77c5575', 'rel': 'self'}, {'href': 'http://localhost/nodes/91c007fb-adf1-4f94-a84f-560ca77c5575', 'rel': 'bookmark'}]}, {'uuid': 'd4ad1bd1-e4dc-4ba6-9511-c3013e2a0643', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/d4ad1bd1-e4dc-4ba6-9511-c3013e2a0643', 'rel': 'self'}, {'href': 'http://localhost/nodes/d4ad1bd1-e4dc-4ba6-9511-c3013e2a0643', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=False&limit=2 {} -GOT:{'nodes': [{'uuid': 'daab9f36-2de6-44ad-be06-a6e335aed889', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/daab9f36-2de6-44ad-be06-a6e335aed889', 'rel': 'self'}, {'href': 'http://localhost/nodes/daab9f36-2de6-44ad-be06-a6e335aed889', 'rel': 'bookmark'}]}, {'uuid': 'f248e84d-71f4-4a1c-ba83-9aa80ebb6565', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/f248e84d-71f4-4a1c-ba83-9aa80ebb6565', 'rel': 'self'}, {'href': 'http://localhost/nodes/f248e84d-71f4-4a1c-ba83-9aa80ebb6565', '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=f248e84d-71f4-4a1c-ba83-9aa80ebb6565'} -GET: /v1/nodes/validate?node=spam {} -GOT:{} -GET: /v1/nodes/validate?node=spam {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:20.580864+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-e8b4bc64-e891-4c43-a6f3-4156ff209e11 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address or OpenFlow datapath ID but received zz:zz:zz:zz:zz:zz.\", \"debuginfo\": null}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-0c766cd2-d41c-4f13-a163-dee5e2d8dcf8 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-fda06dd3-c30c-4b0f-812b-8faba5bc8fd5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/validate?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{} -GET: /v1/nodes/validate?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} -GOT:{'connectors': [{'uuid': '5dbf1d83-4e74-4773-94ee-28db48fdacc8', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/5dbf1d83-4e74-4773-94ee-28db48fdacc8', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/5dbf1d83-4e74-4773-94ee-28db48fdacc8', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'f9c49913-ff57-425e-9189-b200c3e2c218', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/f9c49913-ff57-425e-9189-b200c3e2c218', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/f9c49913-ff57-425e-9189-b200c3e2c218', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 {} -GOT:{'connectors': [{'uuid': '5dbf1d83-4e74-4773-94ee-28db48fdacc8', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/5dbf1d83-4e74-4773-94ee-28db48fdacc8', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/5dbf1d83-4e74-4773-94ee-28db48fdacc8', '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=5dbf1d83-4e74-4773-94ee-28db48fdacc8'} -GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors {} -GOT:Response: 404 Not Found +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:21.076768+00:00", "updated_at": null, "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"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c7245652-7749-4828-a27a-0544afe15e42 +Openstack-Request-Id: req-8664a9fb-91d5-4e47-a98c-5df8d5d5f633 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} -GET: /v1/nodes/volume/connectors {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'address' is a required property\", \"debuginfo\": null}"} +POST: /v1/ports {'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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 400 Bad Request Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_conf -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_conf ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_convert_controller -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_convert_controller ... ok +Openstack-Request-Id: req-8bf6c8e7-4136-46cb-8591-5febea2ea733 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_060_nodes_states_raid_put_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_060_nodes_states_raid_put_member ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_known_good_state +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_known_good_state ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_049_owner_admin_can_change_lessee +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_049_owner_admin_can_change_lessee ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta +ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_017_nodes_node_ident_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_017_nodes_node_ident_patch_admin ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_kickstart_stage2_missing +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_kickstart_stage2_missing ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_103_nodes_vifs_node_vif_ident_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_103_nodes_vifs_node_vif_ident_delete_admin ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_reset_idrac +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_reset_idrac ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception ... ok +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_061_nodes_states_raid_put_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_061_nodes_states_raid_put_observer ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_upgade_exception_no_retries +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_upgade_exception_no_retries ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_no_ipaddress +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_no_ipaddress ... ok +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_member ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_050_owner_manager_can_change_lessee +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_050_owner_manager_can_change_lessee ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_018_system_admin_can_patch_chassis +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_018_system_admin_can_patch_chassis ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports ... ok +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_062_nodes_states_console_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_062_nodes_states_console_get_admin ... ok +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_boot_option +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_boot_option ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1ead63f3-c064-4c5e-8992-64a3aa030474 +Openstack-Request-Id: req-d058ba8e-e9a3-446c-8212-1cf0db3c0443 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25237,7 +23422,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7b2d0a21-6102-408a-a42b-362237d11254 +Openstack-Request-Id: req-731dfdf0-088a-49fc-88cc-a88322b875b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25246,7 +23431,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-82a1402d-45c0-4157-9d3d-d5661868d215 +Openstack-Request-Id: req-7a192df3-a60b-41ce-a50f-e060fc96d11b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25255,7 +23440,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fc0ee2dd-b50a-4e4b-ba87-49236956feb1 +Openstack-Request-Id: req-dc49818b-04f8-4c45-a40a-9452b7dc5784 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25264,7 +23449,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b97994fd-f327-4339-b65a-b56fc13fbdef +Openstack-Request-Id: req-c538b955-c1da-44dd-8388-f68401c062e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25273,7 +23458,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e19a9dcf-a9c4-4d1a-9369-941b544abcd8 +Openstack-Request-Id: req-8b51b554-a279-46dd-9974-4ba5a9d6f017 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25282,7 +23467,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-065528a6-c9ee-4fd4-a9a9-5b6b7488a87c +Openstack-Request-Id: req-cb694b6f-6aec-4b9e-ba0f-aaf43952a24b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25291,7 +23476,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-76de4845-edb2-45db-9ef9-ec8668726c3c +Openstack-Request-Id: req-6afad295-e838-40e6-93d7-f13db7531ae3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25300,7 +23485,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-846fbf2c-f7c9-4507-9c7d-5cfc3796655e +Openstack-Request-Id: req-777a7efd-2562-43e8-970b-1c9b8aa1d288 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25309,7 +23494,7 @@ POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0a0a97fa-09b3-40ef-9004-30809ce2221d +Openstack-Request-Id: req-fb591fc1-b444-4cf0-b2ec-f7749c7fa844 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25318,7 +23503,7 @@ POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1ccb1ec8-b884-4c0b-8cde-79f704cdacd5 +Openstack-Request-Id: req-0e8dc052-e022-4698-8505-2e490bc3eb08 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25327,7 +23512,7 @@ POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-70297b0b-6c20-4594-9ac4-8884e5a7810e +Openstack-Request-Id: req-c867706b-a723-4e21-9f25-344214ba7be7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25336,7 +23521,7 @@ 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-8cc93303-1786-4f4d-9327-dc229847276e +Openstack-Request-Id: req-5ad1801a-c872-43a7-b2b9-279507fc310c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25345,426 +23530,492 @@ 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-45d14d4a-3d11-436c-8a85-82d24e9b3efd +Openstack-Request-Id: req-c2cdf545-e76a-4393-b360-956b618e4281 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist ... ok -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_observer ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_051_owner_admin_cannot_change_owner ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_051_owner_admin_cannot_change_owner ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_not_implemented -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_not_implemented ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_driver_info -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_driver_info ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps ... ok -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_failed -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_failed ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_064_nodes_states_console_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_064_nodes_states_console_get_admin ... ok -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__ipmitool_timing_args -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__ipmitool_timing_args ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_template_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_template_steps ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except ... ok -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_106_nodes_management_indicators_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_106_nodes_management_indicators_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_052_owner_manager_cannot_change_owner -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_052_owner_manager_cannot_change_owner ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_invalid_args -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_invalid_args ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_still_processing -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_still_processing ... ok -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout ... ok -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__clear_foreign_config_attribute_error -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__clear_foreign_config_attribute_error ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_deprecated -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_deprecated ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_065_nodes_states_console_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_065_nodes_states_console_get_member ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_107_nodes_management_indicators_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_107_nodes_management_indicators_get_member ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage_both -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage_both ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_redfish_properties -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_redfish_properties ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_053_lessee_member_can_set_protected -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_053_lessee_member_can_set_protected ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress ... ok -ACL Test GOT Response: 503 Service Unavailable +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports ... ok +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_fallback +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_fallback ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ee51d3bb-e848-4f0d-b793-044df1a0e830 +Openstack-Request-Id: req-7da35927-aa21-4db9-a9ce-2dbc8e0a7444 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:20.953441+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-7da35927-aa21-4db9-a9ce-2dbc8e0a7444 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:20.953441+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} +API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-108f3278-15e4-404e-b8c5-d7df9adac729 +Openstack-Request-Id: req-62585e93-f8f9-4171-84c2-4c3c144382b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-108f3278-15e4-404e-b8c5-d7df9adac729 +Openstack-Request-Id: req-62585e93-f8f9-4171-84c2-4c3c144382b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} -GOT:Response: 403 Forbidden +API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}] +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-87ca35ba-4cc1-4677-a29b-f6a8109b42ca +Openstack-Request-Id: req-f94bbf44-8ea8-4eb8-9901-5f05f5ed347d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-87ca35ba-4cc1-4677-a29b-f6a8109b42ca +Openstack-Request-Id: req-f94bbf44-8ea8-4eb8-9901-5f05f5ed347d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/conductor_group', 'value': 'DC04-ROW39'}] +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port ... ok +POST: /v1/ports {'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, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-33351f1f-31b9-42cd-9285-df55a998344a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/ports {'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': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-ef2f666c-dd11-4a96-bf27-67dee6428285 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-97ed47e6-ead1-4a41-a884-4d6cd61196a6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:22.163157+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +POST: /v1/ports {'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': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-ef2f666c-dd11-4a96-bf27-67dee6428285 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-90f930d6-308f-4c7c-80b2-d5665f1f009f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} -GOT:Response: 503 Service Unavailable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:22.452570+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +POST: /v1/ports {'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': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-0b291ced-0d5b-4290-9ce5-6ad3daeba3fd +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-9058cc90-5595-4799-8143-78d2af771c0a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:22.740959+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-0b291ced-0d5b-4290-9ce5-6ad3daeba3fd +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-a2127ca7-b6b7-4819-bfbe-59fde1b05242 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} -GOT:Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:22.948941+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-ccb198f6-2aed-4051-bda3-ca2938d4239b +Openstack-Request-Id: req-cd28d8a2-2c82-437b-9eec-cf8182ac3d25 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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}"} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_url_http +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_url_http ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_019_system_member_can_patch_conductor_group +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_019_system_member_can_patch_conductor_group ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_063_nodes_states_console_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_063_nodes_states_console_get_member ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_106_nodes_management_indicators_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_106_nodes_management_indicators_get_admin ... ok +ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor +ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_052_owner_manager_cannot_change_owner +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_052_owner_manager_cannot_change_owner ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_bios +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_bios ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok ... ok +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_107_nodes_management_indicators_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_107_nodes_management_indicators_get_member ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_uefi +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_uefi ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_020_nodes_node_ident_patch_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_020_nodes_node_ident_patch_member ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_064_nodes_states_console_put_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_064_nodes_states_console_put_admin ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version ... ok +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_053_lessee_member_can_set_protected +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_053_lessee_member_can_set_protected ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte ... ok +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_108_nodes_management_indicators_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_108_nodes_management_indicators_get_observer ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_021_nodes_node_ident_patch_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_021_nodes_node_ident_patch_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_065_nodes_states_console_put_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_065_nodes_states_console_put_member ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub ... ok +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_109_nodes_management_indicators_component_get_allow +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.' +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_054_lessee_member_cannot_patch_instance_info +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_054_lessee_member_cannot_patch_instance_info ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key ... ok +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection_no_inspection_ramdisk +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection_no_inspection_ramdisk ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-ccb198f6-2aed-4051-bda3-ca2938d4239b +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-2a1b0880-6232-44d4-a908-eb0503e47676 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:23.437005+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-f0a9b983-81a5-4b63-8fb4-4ea6a64549a0 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-8e7f80c9-fc7e-4429-9c17-d8aa26c8f3b3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:23.741638+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +POST: /v1/ports {'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, 'node_uuid': '8159bd8c-0038-47ec-b5a0-c931cf4e3094', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f0a9b983-81a5-4b63-8fb4-4ea6a64549a0 +Openstack-Request-Id: req-b942a613-3f17-424a-a6f9-d195c2204531 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 8159bd8c-0038-47ec-b5a0-c931cf4e3094 could not be found.\", \"debuginfo\": null}"} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-3b0282d3-2cd2-4954-870f-394bbf9df02d +Openstack-Request-Id: req-909dc0ac-bdeb-4536-b8a4-f3151564a0fe +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-a2d7987f-9905-4506-8658-75363efcdbb6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-bbc4f1bb-4154-4814-ac1f-9f278c0a4553 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-3b0282d3-2cd2-4954-870f-394bbf9df02d +Openstack-Request-Id: req-95823c42-384d-48a3-9380-b08a707898a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} -GOT:Response: 503 Service Unavailable +{"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}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-10b59e47-5793-4bed-b774-fc9c80a626a2 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-302f049a-e41d-4966-9842-1f3375b30cae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_066_nodes_states_console_put_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_066_nodes_states_console_put_admin ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_108_nodes_management_indicators_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_108_nodes_management_indicators_get_observer ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_no_conversion -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_no_conversion ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_invalid_param -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_invalid_param ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_no_param -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_no_param ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param_not_found -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param_not_found ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_054_lessee_member_cannot_patch_instance_info -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_054_lessee_member_cannot_patch_instance_info ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_not_raid -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_not_raid ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_109_nodes_management_indicators_component_get_allow -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.' -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bios -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bios ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_067_nodes_states_console_put_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_067_nodes_states_console_put_member ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_idrac -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_idrac ... ok +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:25.175355+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data ... ok +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_022_nodes_node_ident_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_022_nodes_node_ident_delete_admin ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_110_nodes_management_indicators_component_ind_ident_get_allow 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.' -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_066_nodes_states_console_put_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_066_nodes_states_console_put_observer ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_055_lessee_member_cannot_patch_driver_info ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_055_lessee_member_cannot_patch_driver_info ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_clean ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_ipmi_1_5 -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_ipmi_1_5 ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_068_nodes_states_console_put_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_068_nodes_states_console_put_reader ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_file -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_file ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_not_a_number -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_not_a_number ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_fail_http_url_not_set +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_fail_http_url_not_set ... ok +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm ... ok +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-ae865e0f-20f5-473f-bee5-520cbee3f3a2 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "15b9d894-1e6c-4542-84c0-fd5daacecbe4", "created_at": "2024-01-06T15:34:09.535119+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/15b9d894-1e6c-4542-84c0-fd5daacecbe4", "rel": "self"}, {"href": "http://localhost/nodes/15b9d894-1e6c-4542-84c0-fd5daacecbe4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/15b9d894-1e6c-4542-84c0-fd5daacecbe4/ports", "rel": "self"}, {"href": "http://localhost/nodes/15b9d894-1e6c-4542-84c0-fd5daacecbe4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/15b9d894-1e6c-4542-84c0-fd5daacecbe4/states", "rel": "self"}, {"href": "http://localhost/nodes/15b9d894-1e6c-4542-84c0-fd5daacecbe4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/15b9d894-1e6c-4542-84c0-fd5daacecbe4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/15b9d894-1e6c-4542-84c0-fd5daacecbe4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/15b9d894-1e6c-4542-84c0-fd5daacecbe4/volume", "rel": "self"}, {"href": "http://localhost/nodes/15b9d894-1e6c-4542-84c0-fd5daacecbe4/volume", "rel": "bookmark"}]} +PATCH: /v1/nodes/92328453-0d4a-40ab-9cae-c13c5e07d78f [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-34fe1761-9b3c-4039-a427-6de5fb574f8b +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +PATCH: /v1/nodes/62d7e596-c351-45f6-bc18-dd035c8cbb65 [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-93f81f6a-d8c1-4345-9cfd-0d130a778586 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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, storage_interface, vendor_interface\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-d0d302ca-913d-4b39-963e-1d9b2db8b68f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.45 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2024-01-06T15:34:10.455636+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", "cpus": "8", "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"}]} +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 204 No Content +Openstack-Request-Id: req-18751a88-5bb8-485e-bdf7-6e3e5bf63569 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 + +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\": \"\"}"} +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-d721d4ab-c306-4f38-abe3-7ec9691d8320 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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}"} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_111_nodes_management_indicators_component_ind_ident_put_allow 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.' +ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_no_token_info +ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_no_token_info ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked ... ok +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_023_nodes_node_ident_delete_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_023_nodes_node_ident_delete_member ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_missing_stage2_id +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_missing_stage2_id ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_ramdisk +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_ramdisk ... ok +ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_returns_project_id_if_present +ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_returns_project_id_if_present ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake ... ok ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ab121027-9456-470e-9a6c-ab011a6f23b0 +Openstack-Request-Id: req-b42ac7a0-1cc3-4e74-9f67-6e27fcfcdf2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25773,14 +24024,14 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/lessee', 'value': '1234'}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-84937c50-994f-47c3-8baf-12a0db6cad75 +Openstack-Request-Id: req-a2ce3cdd-f473-4485-b717-2cd404ad721a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-84937c50-994f-47c3-8baf-12a0db6cad75 +Openstack-Request-Id: req-a2ce3cdd-f473-4485-b717-2cd404ad721a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25789,14 +24040,14 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/lessee', 'value': '1234'}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-947ecc80-db76-4046-bab2-42e991298cd0 +Openstack-Request-Id: req-8d3c8572-7e4e-4d53-882a-5fbca9ad0fa2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-947ecc80-db76-4046-bab2-42e991298cd0 +Openstack-Request-Id: req-8d3c8572-7e4e-4d53-882a-5fbca9ad0fa2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25805,14 +24056,14 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/owner', 'value': '1234'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1cbb50c9-712c-49f2-823b-af3aed7c795d +Openstack-Request-Id: req-f870bafd-60c4-4f16-aeaf-86ef43e62591 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1cbb50c9-712c-49f2-823b-af3aed7c795d +Openstack-Request-Id: req-f870bafd-60c4-4f16-aeaf-86ef43e62591 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25821,14 +24072,14 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/owner', 'value': '1234'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c8978d72-6b78-43a2-b522-5861147e878d +Openstack-Request-Id: req-feaf2c55-dea9-4cd2-b9ef-97ceff16a65c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c8978d72-6b78-43a2-b522-5861147e878d +Openstack-Request-Id: req-feaf2c55-dea9-4cd2-b9ef-97ceff16a65c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25837,14 +24088,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/protected', 'value': True}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c5e47133-b285-40d8-be6d-9d319ccea67f +Openstack-Request-Id: req-f24f22a3-96c3-431c-9506-2278c66577c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c5e47133-b285-40d8-be6d-9d319ccea67f +Openstack-Request-Id: req-f24f22a3-96c3-431c-9506-2278c66577c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25853,14 +24104,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ba0854bd-0ce5-4dab-b618-ffed3f8b0c93 +Openstack-Request-Id: req-4fe23efa-417a-47dd-8cb3-69c731ccd87a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ba0854bd-0ce5-4dab-b618-ffed3f8b0c93 +Openstack-Request-Id: req-4fe23efa-417a-47dd-8cb3-69c731ccd87a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25869,14 +24120,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/driver_info', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-59f3ecb8-4891-41c1-8cc4-44474fde4320 +Openstack-Request-Id: req-a5a79bce-c9d9-4c2e-a4fe-ca953e629260 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:driver_info\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-59f3ecb8-4891-41c1-8cc4-44474fde4320 +Openstack-Request-Id: req-a5a79bce-c9d9-4c2e-a4fe-ca953e629260 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -25885,543 +24136,799 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/properties', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a5c5176b-b99a-4d80-a362-ff908b4a9151 +Openstack-Request-Id: req-3c18cdc9-c38b-4be2-aaa7-ad8fdee3d077 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:properties\", \"debuginfo\": null}"} -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_not_supported -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_not_supported ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup ... ok +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_056_lessee_member_cannot_patch_properties ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_056_lessee_member_cannot_patch_properties ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_from_swift -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_from_swift ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance ... ok -GOT:{'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'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} -GOT:Response: 404 Not Found +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-08500438-ecd4-42e0-92d8-056ee4e47091 +Openstack-Request-Id: req-120d15de-1ae0-4932-8952-a0210dd6d32c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2025-02-07T21:29:21.797166+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': '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/volume/targets {} -GOT:{'targets': [{'uuid': '357dfef3-9abe-48c3-a899-b7765697d94f', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/357dfef3-9abe-48c3-a899-b7765697d94f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/357dfef3-9abe-48c3-a899-b7765697d94f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'ea617b5c-e5ff-4339-9113-11804f965ee8', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/ea617b5c-e5ff-4339-9113-11804f965ee8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ea617b5c-e5ff-4339-9113-11804f965ee8', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 {} -GOT:{'targets': [{'uuid': '357dfef3-9abe-48c3-a899-b7765697d94f', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/357dfef3-9abe-48c3-a899-b7765697d94f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/357dfef3-9abe-48c3-a899-b7765697d94f', '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=357dfef3-9abe-48c3-a899-b7765697d94f'} -GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d35313f2-77e3-4ab8-b10f-98dca266a6ca +Openstack-Request-Id: req-120d15de-1ae0-4932-8952-a0210dd6d32c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} -GET: /v1/nodes/volume/targets {} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT:Response: 404 Not Found Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -DELETE: /v1/portgroups/52:54:00:cf:2d:31 -GOT:Response: 400 Bad Request +Openstack-Request-Id: req-7d9d8ee5-1b46-48c3-b521-73bf6834ff7d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -{"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 52:54:00:cf:2d:31\"}"} -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GOT:Response: 204 No Content -Openstack-Request-Id: req-abcb2c14-dd58-481f-bbea-3eb29a9540ab +Openstack-Request-Id: req-7d9d8ee5-1b46-48c3-b521-73bf6834ff7d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 - -DELETE: /v1/portgroups/pg.1 -GOT:Response: 204 No Content -Openstack-Request-Id: req-78ed5277-c268-40d4-8203-2de3f3fc4339 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'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-10872ce4-811c-44d7-9348-0b9ba70c4a38 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 - -DELETE: /v1/portgroups/blah +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-10872ce4-811c-44d7-9348-0b9ba70c4a38 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-2d72ad84-fc17-468f-aada-b76832a4fe23 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-2d72ad84-fc17-468f-aada-b76832a4fe23 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9c1cdf9c-0cfc-496c-955f-b1903af52bfa +Openstack-Request-Id: req-a1310369-e6ef-4200-a912-30b08f941ec5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\", \"debuginfo\": null}"} -DELETE: /v1/portgroups/pg.1.json -GOT:Response: 204 No Content -Openstack-Request-Id: req-840fedbe-bd58-46fb-88bd-37cad49e3389 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-a1310369-e6ef-4200-a912-30b08f941ec5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 - -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-8f39927f-e7c2-475d-86ca-1a7502ed23a2 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-8f39927f-e7c2-475d-86ca-1a7502ed23a2 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 404 Not Found Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GOT:Response: 409 Conflict +Openstack-Request-Id: req-01feff7f-806a-48e1-af54-a34760490bc4 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3358abf6-3997-4419-be62-f644652b2ec0 +Openstack-Request-Id: req-01feff7f-806a-48e1-af54-a34760490bc4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_ok ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy_oem -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy_oem ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_swift_noop -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_swift_noop ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_069_nodes_vendor_passthru_methods_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_069_nodes_vendor_passthru_methods_get_admin ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_clean ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-d8b087cf-8856-491a-957a-fbb85f741c96 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-d8b087cf-8856-491a-957a-fbb85f741c96 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_067_nodes_vendor_passthru_methods_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_067_nodes_vendor_passthru_methods_get_admin ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_anaconda +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_anaconda ... ok +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request ... ok +ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history +ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history ... ok +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise ... ok +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue +ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_112_portgroups_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_112_portgroups_get_admin ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_swift_schema -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_swift_schema ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__get_storage_controller_invalid_identity -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__get_storage_controller_invalid_identity ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image ... ok +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request ... ok +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions ... ok +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_no_image_source_for_local_boot +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_no_image_source_for_local_boot ... ok +ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_disaled +ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_disaled ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_iso +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_iso ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v4_and_v6 +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v4_and_v6 ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports ... ok +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_deprecated +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_deprecated ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_024_nodes_node_ident_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_024_nodes_node_ident_delete_reader ... ok +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_057_lessee_member_cannot_patch_network_data ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_057_lessee_member_cannot_patch_network_data ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_deploy ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__is_realtime_ready -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__is_realtime_ready ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_with_instance_info -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_with_instance_info ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_allocated -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_allocated ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_070_nodes_vendor_passthru_methods_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_070_nodes_vendor_passthru_methods_get_member ... ok +ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_noop +ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_noop ... ok +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request ... ok +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object ... ok +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v6 +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v6 ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_ramdisk +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_ramdisk ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild ... ok +ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_error_severity +ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_error_severity ... ok +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise ... ok +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_113_portgroups_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_113_portgroups_get_member ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_clean ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_specified -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_specified ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_non_local +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_non_local ... ok +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_object_versions +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_object_versions ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:34:25.175355+00:00', 'updated_at': None, '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'}}, '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': None, 'pxe_enabled': 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'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +POST: /v1/ports {'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': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-7923c72c-a679-4473-9fcc-7abf805dbf82 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-4b420aa6-875a-4845-986c-1e45f19f16f2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:25.432017+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +POST: /v1/ports {'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': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-6dc0a92f-cbb9-4494-962c-a2b460db7ff4 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-a208f317-099a-4375-a8b0-91f7a8094c85 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:25.709690+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-18385efc-b02d-421c-914d-fe1f0edc3ad9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:29:32.222456+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {'uuid': 'fd1d6c50-a127-433a-b53a-36048550d352', 'name': '9e1cfafc-c5b5-41b0-9826-8c0607e8097f', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:25.994215+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-e88ef1d1-9026-4de9-be50-012c628d52ca +Openstack-Request-Id: req-bd4f4da8-d76a-48c5-93af-6f7daf18a151 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A portgroup with MAC address aa:aa:aa:11:22:33 already exists.\", \"debuginfo\": null}"} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'AA:BB:CC:DD:EE:FF', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +{"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}"} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-9017d331-ffd1-4b33-8060-cc1f2623c5d2 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-2e09d7af-1528-4dbc-a14b-51e8e805e211 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:29:32.638119+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T21:29:32.638119+00:00', 'updated_at': None, 'address': 'aa:bb:cc:dd:ee:ff', 'extra': {}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:26.442826+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-54dd0cbe-e675-4a1b-a6ca-fcc46a5f2b41 +Openstack-Request-Id: req-891af491-82a0-4594-91d2-32ae6f57f06d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.26 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:29:32.973597+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id ... ok +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}"} +ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_user +ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_user ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception ... ok +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_release_versions +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_release_versions ... ok +ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id +ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_observer ... ok +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_025_nodes_validate_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_025_nodes_validate_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_058_lessee_member_cannot_patch_name ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_058_lessee_member_cannot_patch_name ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_deploy ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_default_boot_mode -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_default_boot_mode ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status_no_task_monitor_url -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status_no_task_monitor_url ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_071_nodes_vendor_passthru_methods_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_071_nodes_vendor_passthru_methods_get_reader ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error ... ok +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_multipath +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_multipath ... ok +ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup +ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup ... ok +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_114_portgroups_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_114_portgroups_get_observer ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_clean ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_extra_params -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_extra_params ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_exceeded -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_exceeded ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_059_lessee_member_cannot_patch_retired -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_059_lessee_member_cannot_patch_retired ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_deploy ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_fails -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_fails ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_115_portgroups_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_115_portgroups_post_admin ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_skip_missing -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_skip_missing ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_072_nodes_vendor_passthru_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_072_nodes_vendor_passthru_get_admin ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_clean ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_clean -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_clean ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_deploy ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_060_owner_admin_can_patch_node_instance_info -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_060_owner_admin_can_patch_node_instance_info ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_116_portgroups_post_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_116_portgroups_post_member ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_073_nodes_vendor_passthru_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_073_nodes_vendor_passthru_get_member ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported ... ok -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps_skip_missing -ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps_skip_missing ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy ... ok -GOT:Response: 201 Created +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false ... ok +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports ... ok +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type ... ok +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper ... ok +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_059_lessee_member_cannot_patch_retired +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_059_lessee_member_cannot_patch_retired ... ok +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes ... ok +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_070_nodes_vendor_passthru_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_070_nodes_vendor_passthru_get_admin ... ok +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_026_nodes_validate_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_026_nodes_validate_get_member ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report ... ok +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing ... ok +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_hostname +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_hostname ... ok +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_failed +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_failed ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_115_portgroups_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_115_portgroups_post_admin ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok ... ok +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked ... ok +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method ... ok +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id ... ok +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port ... ok +GOT:Response: 503 Service Unavailable Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-c390dad4-5027-400d-94e5-8d371508107b +Openstack-Request-Id: req-7c0ea55e-a9a2-4904-a91f-2ae98d8b75bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:29:33.405373+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T21:29:33.405373+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 500 Internal Server Error +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f2649774-5caa-4f4a-b531-19840ec54c65 +Openstack-Request-Id: req-7c0ea55e-a9a2-4904-a91f-2ae98d8b75bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} -POST: /v1/portgroups {'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 503 Service Unavailable Content-Type: application/json -Location: http://localhost/v1/portgroups/b46f9704-fa50-410b-beec-d946b55aea44 -Openstack-Request-Id: req-50db9eba-fa33-491a-bbf0-9310871d2768 +Openstack-Request-Id: req-f50bfa31-8f56-4557-aee3-d0446e132729 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b46f9704-fa50-410b-beec-d946b55aea44", "created_at": "2025-02-07T21:29:34.136181+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, "links": [{"href": "http://localhost/v1/portgroups/b46f9704-fa50-410b-beec-d946b55aea44", "rel": "self"}, {"href": "http://localhost/portgroups/b46f9704-fa50-410b-beec-d946b55aea44", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/b46f9704-fa50-410b-beec-d946b55aea44/ports", "rel": "self"}, {"href": "http://localhost/portgroups/b46f9704-fa50-410b-beec-d946b55aea44/ports", "rel": "bookmark"}]} -GET: /v1/portgroups/b46f9704-fa50-410b-beec-d946b55aea44 {} -GOT:{'uuid': 'b46f9704-fa50-410b-beec-d946b55aea44', 'created_at': '2025-02-07T21:29:34.136181+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/b46f9704-fa50-410b-beec-d946b55aea44', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b46f9704-fa50-410b-beec-d946b55aea44', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/b46f9704-fa50-410b-beec-d946b55aea44/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b46f9704-fa50-410b-beec-d946b55aea44/ports', 'rel': 'bookmark'}]} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'internal_info': 'info'} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-837d92c1-a121-451f-9fb5-abb5cffedfe6 +Openstack-Request-Id: req-f50bfa31-8f56-4557-aee3-d0446e132729 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: Additional properties are not allowed ('internal_info' was unexpected)\", \"debuginfo\": null}"} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'invalid-format', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-58131f82-458b-42dc-a948-e13a4ed98b94 +Openstack-Request-Id: req-0e88118a-df4a-4185-b2b4-6656d9c2664c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1d6f47f7-888b-4d94-8e88-1630b85e6b5e +Openstack-Request-Id: req-0e88118a-df4a-4185-b2b4-6656d9c2664c X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': 'invalid-format'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-27667f49-9970-4378-86f7-678075e498d2 +Openstack-Request-Id: req-ae5101fd-a75d-48f5-a571-a105b6eeb677 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: invalid-format\", \"debuginfo\": null}"} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 406 Not Acceptable +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-182a7c0e-b02e-4eb9-a6bc-72e5722af340 +Openstack-Request-Id: req-ae5101fd-a75d-48f5-a571-a105b6eeb677 X-Openstack-Ironic-Api-Maximum-Version: 1.80 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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'properties': {'bond_prop': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_clean ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_deprecated -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_deprecated ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info_bios -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info_bios ... ok -ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_no_change -ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_no_change ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_deploy ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_clean -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_clean ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-6b809184-2563-4cfb-9a60-25f7b429121e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-6b809184-2563-4cfb-9a60-25f7b429121e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-68841ff4-29ec-4bb2-ad16-d55f8c50cc70 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-68841ff4-29ec-4bb2-ad16-d55f8c50cc70 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-2ced65d0-6a1d-4416-8dc0-5a2f66621526 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-10b59e47-5793-4bed-b774-fc9c80a626a2 +Openstack-Request-Id: req-2ced65d0-6a1d-4416-8dc0-5a2f66621526 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-42f5a2b5-6fc5-45dc-abf5-23a3a04bf727 +Openstack-Request-Id: req-be83d36d-0020-4afe-8a2a-3f7daf5ee047 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-42f5a2b5-6fc5-45dc-abf5-23a3a04bf727 +Openstack-Request-Id: req-be83d36d-0020-4afe-8a2a-3f7daf5ee047 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} -GOT:Response: 403 Forbidden +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_rescue +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_rescue ... ok +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_071_nodes_vendor_passthru_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_071_nodes_vendor_passthru_get_member ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_missing +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_missing ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_027_nodes_validate_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_027_nodes_validate_get_reader ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_060_owner_admin_can_patch_node_instance_info +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_060_owner_admin_can_patch_node_instance_info ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version ... ok +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_116_portgroups_post_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_116_portgroups_post_member ... ok +ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker +ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker ... ok +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config ... ok +ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free +ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free ... ok +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_072_nodes_vendor_passthru_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_072_nodes_vendor_passthru_get_observer ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_028_nodes_maintenance_put_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_028_nodes_maintenance_put_admin ... ok +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed_idrac5 +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed_idrac5 ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_117_portgroups_post_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_117_portgroups_post_observer ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value ... ok +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'internal_info': {'a': 'b'}} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-4be7a37f-c12b-404f-96e4-585706b4a584 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-ff4b81cd-5fa6-48f5-b0d8-68ee53ac9cf7 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-915ed677-490b-453c-bcda-65c5554099c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:27.134898+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-ff4b81cd-5fa6-48f5-b0d8-68ee53ac9cf7 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-18e697ae-664a-41cf-949a-ad602f8d49cf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:27.333302+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-70fee721-8b1e-4c35-9d10-bdb8dbc91114 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Smart NIC port must have port_id and hostname in local_link_connection\", \"debuginfo\": null}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-8ae34e35-ea1c-4a5b-aeef-2509c19d90e1 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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}"} +POST: /v1/ports {'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': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-f5dbf559-a217-4193-b772-f757e37a650a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/ports {'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': 'Ethernet1/15'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-373c5509-02df-40ab-ac45-d25560c6b373 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'network_type': 'unmanaged'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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-5f32f2e0-fad1-403a-a29f-dbb0e4b43ef6 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:28.646848+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive +ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_061_owner_manager_can_patch_node_instance_info +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_061_owner_manager_can_patch_node_instance_info ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc_old_api_version ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_still_processing +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_still_processing ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail ... ok +ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift +ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_073_nodes_vendor_passthru_post_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_073_nodes_vendor_passthru_post_admin ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_029_nodes_maintenance_put_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_029_nodes_maintenance_put_member ... ok +ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_build +ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_build ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_118_portgroups_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_118_portgroups_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_bios +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_bios ... ok +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng ... ok +ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout +ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout ... ok +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_062_owner_member_can_patch_node_instance_info +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_062_owner_member_can_patch_node_instance_info ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_074_nodes_vendor_passthru_post_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_074_nodes_vendor_passthru_post_member ... ok +ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback +ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export_failed +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export_failed ... ok +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_limit +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_limit ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_030_nodes_maintenance_put_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_030_nodes_maintenance_put_reader ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_119_portgroups_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_119_portgroups_detail_get_member ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6_bios +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6_bios ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_not_drac +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_not_drac ... ok +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_never_run +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_never_run ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-3bfd233b-a46c-4612-89d1-53cc52ffb94e +Openstack-Request-Id: req-96f05913-faf0-4539-bf04-76985073f29d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-3bfd233b-a46c-4612-89d1-53cc52ffb94e +Openstack-Request-Id: req-96f05913-faf0-4539-bf04-76985073f29d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} -GOT:Response: 403 Forbidden +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-697a7737-ca96-4cba-8f64-0cd3957a9256 +Openstack-Request-Id: req-1b0bade4-c21f-4493-97d1-3f888fc1862b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-697a7737-ca96-4cba-8f64-0cd3957a9256 +Openstack-Request-Id: req-1b0bade4-c21f-4493-97d1-3f888fc1862b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c380b8dd-e3af-4e9d-9451-cc3acb47ff91 +Openstack-Request-Id: req-1a986533-bbac-4bce-9065-325c332263ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c380b8dd-e3af-4e9d-9451-cc3acb47ff91 +Openstack-Request-Id: req-1a986533-bbac-4bce-9065-325c332263ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26430,277 +24937,157 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a981d8f2-adcc-4c60-ba9b-0b50f5929cf5 +Openstack-Request-Id: req-bfe2b91a-e7e0-41f2-9572-ba7af750b1f4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a981d8f2-adcc-4c60-ba9b-0b50f5929cf5 +Openstack-Request-Id: req-bfe2b91a-e7e0-41f2-9572-ba7af750b1f4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} -GOT:Response: 403 Forbidden +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-18c1001e-18a3-4b5e-a31d-54e73e10e3bc +Openstack-Request-Id: req-22dde5ec-f018-42d9-aefe-2e0f53425d00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-18c1001e-18a3-4b5e-a31d-54e73e10e3bc +Openstack-Request-Id: req-22dde5ec-f018-42d9-aefe-2e0f53425d00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-831d6b8c-3ded-48f4-aff3-36dba9b513ed +Openstack-Request-Id: req-63a90b47-a543-4168-b9a5-9a2b13784eb5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_117_portgroups_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_117_portgroups_post_observer ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_074_nodes_vendor_passthru_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_074_nodes_vendor_passthru_get_reader ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_active -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_active ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_061_owner_manager_can_patch_node_instance_info -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_061_owner_manager_can_patch_node_instance_info ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_bios -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_bios ... ok -ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_existing -ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_existing ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_deploy -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_deploy ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok ... ok -ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure -ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_cleaning -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_cleaning ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key ... ok -ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_new -ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_new ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_118_portgroups_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_118_portgroups_detail_get_admin ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_075_nodes_vendor_passthru_post_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_075_nodes_vendor_passthru_post_admin ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready_retryerror -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready_retryerror ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_uefi -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_uefi ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_062_owner_member_can_patch_node_instance_info -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_062_owner_member_can_patch_node_instance_info ... ok -ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over -ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over ... ok -ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value -ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_create_configuration -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_create_configuration ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_119_portgroups_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_119_portgroups_detail_get_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_fileurl -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_fileurl ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found ... ok -ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok -ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart_bios -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart_bios ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_uefi -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_uefi ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_delete_configuration -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_delete_configuration ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports ... ok -ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_get_properties ... ok -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-26592dac-462c-457b-9bf9-999bcd4f700a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad', 'properties': {'bond_prop': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-bfdc0cd8-c373-40e5-be04-d9436670b30b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.26 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:29:35.676944+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'aa:bb_cc', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 400 Bad Request +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8495271a-5429-411d-a2ab-6f0780e78ff8 +Openstack-Request-Id: req-63a90b47-a543-4168-b9a5-9a2b13784eb5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create portgroup with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'foo', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None +GOT:Response: 503 Service Unavailable Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-31885899-0860-4c9a-aa87-d126ddbae00d +Openstack-Request-Id: req-4c5c56ed-1687-4161-83a9-09a3108925c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:29:36.164243+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T21:29:36.164243+00:00', 'updated_at': None, 'address': 'aa:aa:aa:11:22:33', 'extra': {}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'foo', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-c3a2ae8a-4f91-496e-a3e9-701cd9596729 +Openstack-Request-Id: req-4c5c56ed-1687-4161-83a9-09a3108925c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:29:36.420002+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T21:29:36.420002+00:00', 'updated_at': None, 'address': None, 'extra': {}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {'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 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3aea1ffb-a6d5-48cd-af10-bb412abb6481 +Openstack-Request-Id: req-9af7a74b-ffea-41b8-955d-3fe34bc14a55 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: 'node_uuid' is a required property\", \"debuginfo\": null}"} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e648ded5-2769-4cfe-9979-808e4b3fc5fc +Openstack-Request-Id: req-9af7a74b-ffea-41b8-955d-3fe34bc14a55 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_rescue -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_rescue ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_076_nodes_vendor_passthru_post_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_076_nodes_vendor_passthru_post_member ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_httpurl -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_httpurl ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_063_owner_reader_can_patch_node_instance_info ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_063_owner_reader_can_patch_node_instance_info ... ok -ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_skip_missing -ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_skip_missing ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_async -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_async ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_floppy_image -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_floppy_image ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach ... ok -ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_boot_type_order -ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_boot_type_order ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_075_nodes_vendor_passthru_post_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_075_nodes_vendor_passthru_post_observer ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_fallback_ipxe_boot_script +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_fallback_ipxe_boot_script ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_no_task_monitor_url +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_no_task_monitor_url ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_fast_track +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_fast_track ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_031_nodes_maintenance_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_031_nodes_maintenance_delete_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_120_portgroups_detail_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_120_portgroups_detail_get_observer ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_url_exception -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_url_exception ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_sync -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_sync ... ok -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_iso_image -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_iso_image ... ok -ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_raid_controller -ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_raid_controller ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_077_nodes_vendor_passthru_post_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_077_nodes_vendor_passthru_post_reader ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_no_subtasks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_no_subtasks ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception ... ok -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_only_enabled -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_only_enabled ... ok -ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_validate -ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_locked +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_locked ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_last_step_noop_fast_track +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_last_step_noop_fast_track ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_notfound +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_notfound ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a5c5176b-b99a-4d80-a362-ff908b4a9151 +Openstack-Request-Id: req-3c18cdc9-c38b-4be2-aaa7-ad8fdee3d077 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26709,14 +25096,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/network_data', 'value': {'links': [], 'networks': [], 'services': []}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1ef9c581-bbf7-4365-a9e4-bb927db58207 +Openstack-Request-Id: req-08d83fd3-392d-4402-a082-1360812b552e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:network_data\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1ef9c581-bbf7-4365-a9e4-bb927db58207 +Openstack-Request-Id: req-08d83fd3-392d-4402-a082-1360812b552e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26725,14 +25112,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/name', 'value': 'meow-node-1'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d273a6fb-e68e-4036-804d-ede794fe839c +Openstack-Request-Id: req-b0242451-1f54-4345-9eb1-01ffd6b93768 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:name\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d273a6fb-e68e-4036-804d-ede794fe839c +Openstack-Request-Id: req-b0242451-1f54-4345-9eb1-01ffd6b93768 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26741,14 +25128,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'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-9760c25c-1322-49ad-b744-26d3b5a740d5 +Openstack-Request-Id: req-525ae88d-7dc8-42c7-a06b-b2e4d18291f7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:retired\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9760c25c-1322-49ad-b744-26d3b5a740d5 +Openstack-Request-Id: req-525ae88d-7dc8-42c7-a06b-b2e4d18291f7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26757,14 +25144,14 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-36e63e78-c189-49e0-b05e-06cf4e5e1693 +Openstack-Request-Id: req-556421c0-ec2a-4251-9678-30737c9926b3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-36e63e78-c189-49e0-b05e-06cf4e5e1693 +Openstack-Request-Id: req-556421c0-ec2a-4251-9678-30737c9926b3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26773,14 +25160,14 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-bd3fc5f4-0cf5-48cf-bac0-3c358f35f6cf +Openstack-Request-Id: req-a3ba048c-94d3-4ad9-8eca-23d21b717614 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-bd3fc5f4-0cf5-48cf-bac0-3c358f35f6cf +Openstack-Request-Id: req-a3ba048c-94d3-4ad9-8eca-23d21b717614 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26789,14 +25176,14 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-8821803c-a1dc-434e-8adc-712a774ce0c1 +Openstack-Request-Id: req-3205ba39-b23a-4b79-b1a8-eccd63e55697 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-8821803c-a1dc-434e-8adc-712a774ce0c1 +Openstack-Request-Id: req-3205ba39-b23a-4b79-b1a8-eccd63e55697 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26805,142 +25192,149 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6e70ad00-f08c-4d0d-a75e-f2178d5c179f +Openstack-Request-Id: req-0a800ba3-964e-4e49-b989-a07eb15684b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6e70ad00-f08c-4d0d-a75e-f2178d5c179f +Openstack-Request-Id: req-0a800ba3-964e-4e49-b989-a07eb15684b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_076_nodes_vendor_passthru_put_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_076_nodes_vendor_passthru_put_admin ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_064_lessee_admin_can_patch_node_instance_info ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_064_lessee_admin_can_patch_node_instance_info ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_clean +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_clean ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_121_portgroups_portgroup_ident_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_121_portgroups_portgroup_ident_get_admin ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_pre_create_configuration -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_pre_create_configuration ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso_user_supplied -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso_user_supplied ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space ... ok -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_fail -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_fail ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_validate_correct_vendor -ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_validate_correct_vendor ... ok -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-3c0acac0-6689-40c1-802c-9ed2f28c1092 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-71665acf-c1a4-4983-b82f-c3c7b3223621 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:29:37.566513+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2025-02-07T21:29:37.566513+00:00', 'updated_at': None, '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'}}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52-54-00-cf-2d-31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-9f3a1f95-b35c-406e-98ef-8d5a07ab3f8a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: 52-54-00-cf-2d-31\", \"debuginfo\": null}"} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-a81e3e2d-fb61-4b85-a253-ccb69362848f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:29:38.091832+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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/volume/connectors/?limit=3 {} -GOT:{'connectors': [{'uuid': '79392a8f-e0e4-4425-b435-666ba957322a', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/79392a8f-e0e4-4425-b435-666ba957322a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/79392a8f-e0e4-4425-b435-666ba957322a', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'dbd77c06-8cd6-46c8-ba23-c7b12f1bf187', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/dbd77c06-8cd6-46c8-ba23-c7b12f1bf187', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/dbd77c06-8cd6-46c8-ba23-c7b12f1bf187', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '4be0bb48-5215-4003-b602-0122dac84bc9', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/4be0bb48-5215-4003-b602-0122dac84bc9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4be0bb48-5215-4003-b602-0122dac84bc9', '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=4be0bb48-5215-4003-b602-0122dac84bc9'} -GET: /v1/volume/connectors?fields=uuid,extra {} -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_078_nodes_vendor_passthru_put_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_078_nodes_vendor_passthru_put_admin ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout ... ok -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_off -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_off ... ok -ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_032_nodes_maintenance_delete_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_032_nodes_maintenance_delete_member ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_deploy +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_deploy ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_no_power_sync_support +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_no_power_sync_support ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_077_nodes_vendor_passthru_put_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_077_nodes_vendor_passthru_put_member ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_122_portgroups_portgroup_ident_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_122_portgroups_portgroup_ident_get_member ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_033_nodes_maintenance_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_033_nodes_maintenance_delete_reader ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_clean +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_clean ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_065_lessee_manager_can_patch_node_instance_info ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_065_lessee_manager_can_patch_node_instance_info ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets ... ok -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_ok -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_ok ... ok -ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue -ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_binary_url -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_binary_url ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_079_nodes_vendor_passthru_put_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_079_nodes_vendor_passthru_put_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr ... ok -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop ... ok +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config_existing_dirs +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config_existing_dirs ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-25742022-0fd5-4793-9955-fac6fdbf501b +Openstack-Request-Id: req-8668d7bd-c375-4cab-a1bb-713e03dcb253 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26949,7 +25343,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-54b0c771-37a9-402d-809d-66dfc4d8b151 +Openstack-Request-Id: req-53cade08-f7d5-480a-a8d8-1f99de5ecfb0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26958,7 +25352,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3f5210c1-62e5-4274-81ab-e19df5dc4e33 +Openstack-Request-Id: req-01039b49-7471-43bd-aae6-2ae38fb31a5c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26967,7 +25361,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d7c35fcb-516f-4666-9236-6adc990ae1e5 +Openstack-Request-Id: req-c4d56d65-8d6b-4e11-8a0a-780dc782d15e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26976,7 +25370,7 @@ GET: /v1/portgroups {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-486eee25-76a1-427f-8ffe-2b32c6232bcd +Openstack-Request-Id: req-50b9f7ee-1aa8-4cc4-8990-070dbd8ac8f7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26985,7 +25379,7 @@ GET: /v1/portgroups {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5ff4dcd9-6ac5-4c7a-afce-b4df0a039688 +Openstack-Request-Id: req-3829d2a5-122b-4743-8c8b-bf353d74bb49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -26994,7 +25388,7 @@ GET: /v1/portgroups {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0e0501d5-62d0-4368-811b-049c377b11f5 +Openstack-Request-Id: req-0b197aab-b194-4508-b5fd-9d97abb4e018 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27003,7 +25397,7 @@ POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3030a3f4-b0fe-4106-97fe-f754a56bec70 +Openstack-Request-Id: req-14b18ef8-5481-43d8-9a2d-95948e659851 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27012,7 +25406,7 @@ POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d6fc6699-3d86-450e-8300-ed37fe9d39f8 +Openstack-Request-Id: req-0c81c42d-ab75-4aaf-83d6-87e603b830ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27021,7 +25415,7 @@ POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-47d1862e-e120-457c-b90a-4b994a47a3af +Openstack-Request-Id: req-b2188650-4625-43f5-8e1f-e94661cd69b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27030,7 +25424,7 @@ GET: /v1/portgroups/detail {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a98f32db-cf4c-4705-9714-25bcdc1c2051 +Openstack-Request-Id: req-bda68582-2d23-496b-a0fe-6cb3f920d6b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27039,7 +25433,7 @@ GET: /v1/portgroups/detail {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c6cf114c-deb6-49f2-afb2-786bcd9c64cd +Openstack-Request-Id: req-4c283ae7-96c0-4eff-a48b-ba9f09ec7fa0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27048,7 +25442,7 @@ GET: /v1/portgroups/detail {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-17b738eb-f44e-4eff-a7cc-ac3dda83f6e5 +Openstack-Request-Id: req-036e0462-5303-4382-a904-716467cc0c28 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27057,7 +25451,7 @@ GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2bb50c8a-191a-4cb6-9c54-111afe1201a3 +Openstack-Request-Id: req-061cf57b-5606-4da0-8ffa-fdac16fb2bc5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27066,172 +25460,423 @@ GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8920e79c-541e-43e8-9ab8-722e2cc18b04 +Openstack-Request-Id: req-aa7b1d66-a1bd-4432-a4d1-955d414d9eb3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_deploy +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_deploy ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_078_nodes_vendor_passthru_put_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_078_nodes_vendor_passthru_put_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_123_portgroups_portgroup_ident_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_123_portgroups_portgroup_ident_get_observer ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail ... ok -ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage -ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_bios -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_bios ... ok -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test_execute_verify_step -ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test_execute_verify_step ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_flash_firmware_sum_mode_with_component -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_flash_firmware_sum_mode_with_component ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail ... ok +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_stop +ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_stop ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_066_lessee_member_cannot_patch_node_instance_info ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_066_lessee_member_cannot_patch_node_instance_info ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_url -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_url ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single ... ok -ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox -ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_080_nodes_vendor_passthru_put_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_080_nodes_vendor_passthru_put_reader ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_034_nodes_management_boot_device_put_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_034_nodes_management_boot_device_put_admin ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace ... ok +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles ... ok +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_retired_last_step_change_tgt_state +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_retired_last_step_change_tgt_state ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_empty +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_empty ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath ... ok +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_124_portgroups_portgroup_ident_patch_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_124_portgroups_portgroup_ident_patch_admin ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields ... ok -ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect -ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_067_lessee_reader_can_patch_node_instance_info -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_067_lessee_reader_can_patch_node_instance_info ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet ... ok -ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty -ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_125_portgroups_portgroup_ident_patch_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_125_portgroups_portgroup_ident_patch_member ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso_vendor_prefix -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso_vendor_prefix ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_081_nodes_vendor_passthru_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_081_nodes_vendor_passthru_delete_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_uuid -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_uuid ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy ... ok -ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error -ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_external_ip -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_external_ip ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_068_third_party_admin_cannot_patch_node_instance_info -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_068_third_party_admin_cannot_patch_node_instance_info ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_missing +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_missing ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_079_nodes_vendor_passthru_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_079_nodes_vendor_passthru_delete_admin ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success ... ok +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail ... ok +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk ... ok +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-cea105c4-6322-44fd-824e-be4360be1116 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-831d6b8c-3ded-48f4-aff3-36dba9b513ed +Openstack-Request-Id: req-cea105c4-6322-44fd-824e-be4360be1116 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-12a21af5-e855-4adc-a10e-4818423cfffb +Openstack-Request-Id: req-dd4e1137-d03b-4b0d-8d96-9b2ac182090d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-12a21af5-e855-4adc-a10e-4818423cfffb +Openstack-Request-Id: req-dd4e1137-d03b-4b0d-8d96-9b2ac182090d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-d98c09e9-cbfc-4452-a915-70994ff54509 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-d98c09e9-cbfc-4452-a915-70994ff54509 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-07aeb7ed-0606-4ac4-95fb-90059d28af85 +Openstack-Request-Id: req-de05848b-83e5-48e3-af4b-dd7112c08e07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-07aeb7ed-0606-4ac4-95fb-90059d28af85 +Openstack-Request-Id: req-de05848b-83e5-48e3-af4b-dd7112c08e07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-7899feae-fb5a-4c2b-b68d-31653c29410a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-7899feae-fb5a-4c2b-b68d-31653c29410a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-dc44d8e3-4eed-496f-a81b-4e93efe69b43 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-dc44d8e3-4eed-496f-a81b-4e93efe69b43 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-9b973c8c-4293-48a9-9437-9f879363849e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-9b973c8c-4293-48a9-9437-9f879363849e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-9b5a7f8e-28b3-44cb-a738-be50ad1215c3 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-9b5a7f8e-28b3-44cb-a738-be50ad1215c3 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_missing +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_missing ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_067_lessee_reader_can_patch_node_instance_info +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_067_lessee_reader_can_patch_node_instance_info ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success ... ok +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_035_nodes_management_boot_device_put_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_035_nodes_management_boot_device_put_member ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_not_supported +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_125_portgroups_portgroup_ident_patch_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_125_portgroups_portgroup_ident_patch_member ... ok +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged_for_fake_node +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged_for_fake_node ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_080_nodes_vendor_passthru_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_080_nodes_vendor_passthru_delete_member ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_oem_missing +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_oem_missing ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_068_third_party_admin_cannot_patch_node_instance_info +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_068_third_party_admin_cannot_patch_node_instance_info ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_036_nodes_management_boot_device_put_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_036_nodes_management_boot_device_put_reader ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue ... ok +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_update_changed_fields +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_update_changed_fields ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_126_portgroups_portgroup_ident_patch_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_126_portgroups_portgroup_ident_patch_observer ... ok +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_081_nodes_vendor_passthru_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_081_nodes_vendor_passthru_delete_observer ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_fields +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_fields ... ok +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ... ok +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_clean_step +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_clean_step ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_069_owner_admin_cannot_delete_nodes +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_069_owner_admin_cannot_delete_nodes ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor ... ok +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_037_nodes_management_boot_device_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_037_nodes_management_boot_device_get_admin ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_sanitize_dict +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_sanitize_dict ... ok +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_fail +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_fail ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_verify_step +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_verify_step ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_082_nodes_traits_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_082_nodes_traits_get_admin ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_export_failed +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_export_failed ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_127_portgroups_portgroup_ident_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_127_portgroups_portgroup_ident_delete_admin ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir ... ok +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_name_missing +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_name_missing ... ok +ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg +ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_multiple_systems +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_multiple_systems ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_038_nodes_management_boot_device_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_038_nodes_management_boot_device_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_070_owner_admin_can_delete_nodes +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_070_owner_admin_can_delete_nodes ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup ... ok +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices ... ok +ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_set_arg_types +ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_set_arg_types ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_success +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_success ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_operation +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_operation ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_access_error_retry +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_access_error_retry ... ok GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3e2db160-154e-4ff6-ae3f-575f502fee4a +Openstack-Request-Id: req-24307500-cc0f-4a21-94b9-4497279c9125 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3e2db160-154e-4ff6-ae3f-575f502fee4a +Openstack-Request-Id: req-24307500-cc0f-4a21-94b9-4497279c9125 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27240,46 +25885,46 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-88f122e0-0747-4a40-bb0c-1dc51f610713 +Openstack-Request-Id: req-78ca57a8-6ac7-458a-b43a-07fb01c760b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-88f122e0-0747-4a40-bb0c-1dc51f610713 +Openstack-Request-Id: req-78ca57a8-6ac7-458a-b43a-07fb01c760b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None -GOT:Response: 403 Forbidden +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-775b3b6e-609c-417c-adc4-1b5fb07eddbc +Openstack-Request-Id: req-f69e1761-7a94-402e-b9bb-5a4f5377b78b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-775b3b6e-609c-417c-adc4-1b5fb07eddbc +Openstack-Request-Id: req-f69e1761-7a94-402e-b9bb-5a4f5377b78b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f0f9f4f8-aacf-47e3-864b-492459995a0c +Openstack-Request-Id: req-052ba008-189f-4765-a2f8-902df9e2712b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f0f9f4f8-aacf-47e3-864b-492459995a0c +Openstack-Request-Id: req-052ba008-189f-4765-a2f8-902df9e2712b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27288,255 +25933,153 @@ 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-74e21f88-c34a-4b56-9ca5-f3ca77635fca +Openstack-Request-Id: req-7e97a63e-037e-4c3d-b5a1-36249c0c7574 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-74e21f88-c34a-4b56-9ca5-f3ca77635fca +Openstack-Request-Id: req-7e97a63e-037e-4c3d-b5a1-36249c0c7574 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test 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-1b1d7d44-112a-4aee-aabc-393182fa5ccb +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-1b1d7d44-112a-4aee-aabc-393182fa5ccb +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-13fd01a8-2fc6-41c0-98d4-39129a260220 +Openstack-Request-Id: req-34140f12-b4f2-4cc7-9bb9-9ea1ad77a5dd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_network_data -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_network_data ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_126_portgroups_portgroup_ident_patch_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_126_portgroups_portgroup_ident_patch_observer ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path ... ok -ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input -ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_082_nodes_vendor_passthru_delete_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_082_nodes_vendor_passthru_delete_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported ... ok -ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket -ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_tls -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_tls ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode_fail -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode_fail ... ok -GOT:{'connectors': [{'uuid': '7c8d76df-a415-48c4-8521-96dfc7085a44', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/7c8d76df-a415-48c4-8521-96dfc7085a44', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/7c8d76df-a415-48c4-8521-96dfc7085a44', 'rel': 'bookmark'}]}, {'uuid': 'f76229d1-cfb8-443d-9883-5121a70c5dfd', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/f76229d1-cfb8-443d-9883-5121a70c5dfd', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/f76229d1-cfb8-443d-9883-5121a70c5dfd', 'rel': 'bookmark'}]}, {'uuid': '35167e41-ac0b-4206-b895-e2c976189cec', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/35167e41-ac0b-4206-b895-e2c976189cec', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/35167e41-ac0b-4206-b895-e2c976189cec', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=35167e41-ac0b-4206-b895-e2c976189cec'} -GET: /v1/volume/connectors {} -GOT:{'connectors': [{'uuid': '3196466e-7219-45c0-b593-488a53caf4b7', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/3196466e-7219-45c0-b593-488a53caf4b7', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3196466e-7219-45c0-b593-488a53caf4b7', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'f41c104b-ddd1-4bc4-8505-8fe2a7d36cf9', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/f41c104b-ddd1-4bc4-8505-8fe2a7d36cf9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/f41c104b-ddd1-4bc4-8505-8fe2a7d36cf9', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '8fc4efb4-a3be-4b90-a4bf-7cf81dd62e19', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/8fc4efb4-a3be-4b90-a4bf-7cf81dd62e19', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/8fc4efb4-a3be-4b90-a4bf-7cf81dd62e19', '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=8fc4efb4-a3be-4b90-a4bf-7cf81dd62e19'} -GET: /v1/volume/connectors?detail=True&limit=3 {} -GOT:{'connectors': [{'uuid': 'b481cd37-f9a4-434f-bda6-25edb0904477', 'created_at': '2025-02-07T21:29:38.975005+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-0', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/b481cd37-f9a4-434f-bda6-25edb0904477', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/b481cd37-f9a4-434f-bda6-25edb0904477', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '5608469b-fd3b-4cc5-a95d-c61f48b19ca4', 'created_at': '2025-02-07T21:29:38.976365+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-1', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/5608469b-fd3b-4cc5-a95d-c61f48b19ca4', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/5608469b-fd3b-4cc5-a95d-c61f48b19ca4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '21381245-9ddf-4d7b-8dcd-cf9fed538979', 'created_at': '2025-02-07T21:29:38.977502+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-2', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/21381245-9ddf-4d7b-8dcd-cf9fed538979', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/21381245-9ddf-4d7b-8dcd-cf9fed538979', '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=21381245-9ddf-4d7b-8dcd-cf9fed538979'} -GET: /v1/volume/connectors?detail=True {} -GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:29:39.208756+00:00', 'updated_at': None, '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?detail=True {} -GOT:Response: 400 Bad Request +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ac166788-8f93-4b1a-a064-44700a628c25 +Openstack-Request-Id: req-34140f12-b4f2-4cc7-9bb9-9ea1ad77a5dd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True&fields=connector_id,extra {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-779affe8-f670-4942-8fd7-6a42fe700bab +Openstack-Request-Id: req-38175aca-b3d1-4271-b9af-bb361fbd383a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} -GET: /v1/volume/connectors?detail=True&node=test-node {} -GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:29:39.938089+00:00', 'updated_at': None, '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?detail=False {} -GOT:{'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'}]} -GET: /v1/volume/connectors?detail=True {} -GOT:Response: 404 Not Found +{"traits": ["trait1"]} +ACL Test GOT Response: 200 OK Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/volume/connectors/detail {} -GOT:Response: 400 Bad Request +Openstack-Request-Id: req-38175aca-b3d1-4271-b9af-bb361fbd383a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"traits": ["trait1"]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-530adc40-6697-4e55-8b40-9fcc00c24a47 +Openstack-Request-Id: req-1ed88197-3e7d-4500-86c1-4023a81515f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for connector_uuid: detail\", \"debuginfo\": null}"} -GET: /v1/volume/connectors {} -GOT:{'connectors': []} -GET: /v1/volume/connectors?node=test-node {} -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_069_owner_admin_cannot_delete_nodes -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_069_owner_admin_cannot_delete_nodes ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_127_portgroups_portgroup_ident_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_127_portgroups_portgroup_ident_delete_admin ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_083_nodes_vendor_passthru_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_083_nodes_vendor_passthru_delete_reader ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_file -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_file ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_083_nodes_traits_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_083_nodes_traits_get_member ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_128_portgroups_portgroup_ident_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_128_portgroups_portgroup_ident_delete_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_070_owner_admin_can_delete_nodes -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_070_owner_admin_can_delete_nodes ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_084_nodes_traits_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_084_nodes_traits_get_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device_inserted -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device_inserted ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue_bios -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue_bios ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_prefix -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_prefix ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_1___legacy_bios_only_____bios___ -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_1___legacy_bios_only_____bios___ ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_port_uuid -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_port_uuid ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_129_portgroups_portgroup_ident_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_129_portgroups_portgroup_ident_delete_observer ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_085_nodes_traits_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_085_nodes_traits_get_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_2___uefi_only_____uefi___ -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_2___uefi_only_____uefi___ ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_config_external_http_url -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_config_external_http_url ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_raises_error +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_raises_error ... ok +ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature +ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_file_not_found +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_file_not_found ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_attribute_error +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_attribute_error ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports ... ok +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need ... ok +ironic.tests.unit.common.test_args.ValidateTypesTest.test_types +ironic.tests.unit.common.test_args.ValidateTypesTest.test_types ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_incorrect_schema +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_incorrect_schema ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_disabled +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_disabled ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_connection_error_retry +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_connection_error_retry ... ok +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspect_wait +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspect_wait ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_071_owner_manager_cannot_delete_nodes ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_071_owner_manager_cannot_delete_nodes ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_3___legacy_bios_and_uefi_____uefi____bios___ -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_3___legacy_bios_and_uefi_____uefi____bios___ ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_node_external_http_url -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_node_external_http_url ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_086_nodes_traits_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_086_nodes_traits_get_reader ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid_attached_vifs -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid_attached_vifs ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning_failed -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning_failed ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_130_nodes_portgroups_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_130_nodes_portgroups_get_admin ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_while_ejecting -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_while_ejecting ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_with_external_ip -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_with_external_ip ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_039_nodes_management_boot_device_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_039_nodes_management_boot_device_get_reader ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_name_missing +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_name_missing ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_power_on +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_power_on ... ok +ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None +ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_not_found +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_not_found ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_129_portgroups_portgroup_ident_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_129_portgroups_portgroup_ident_delete_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_084_nodes_traits_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_084_nodes_traits_get_observer ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled ... ok +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_true +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_true ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup ... ok +ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports +ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_export_configuration_success +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_export_configuration_success ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a27f8ec2-8dfe-43af-b1aa-c1cd88e4c720 +Openstack-Request-Id: req-cf50ab40-44ba-45c9-8b7a-8d6ce480b0f8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a27f8ec2-8dfe-43af-b1aa-c1cd88e4c720 +Openstack-Request-Id: req-cf50ab40-44ba-45c9-8b7a-8d6ce480b0f8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27545,14 +26088,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b6b972b8-2331-4da9-b632-691db5e9e938 +Openstack-Request-Id: req-35d44ad3-1396-4341-818a-e63082c38927 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b6b972b8-2331-4da9-b632-691db5e9e938 +Openstack-Request-Id: req-35d44ad3-1396-4341-818a-e63082c38927 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27561,14 +26104,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3aa92613-19b0-4ce1-b869-d1d2f274e292 +Openstack-Request-Id: req-6658fabf-0bfb-4a4f-b841-c31487d494a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3aa92613-19b0-4ce1-b869-d1d2f274e292 +Openstack-Request-Id: req-6658fabf-0bfb-4a4f-b841-c31487d494a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27577,14 +26120,14 @@ PATCH: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e8dac9bc-6c6d-4570-aa82-3a4c8544c2c5 +Openstack-Request-Id: req-c011af96-c20c-470f-b305-d9e443ae36c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e8dac9bc-6c6d-4570-aa82-3a4c8544c2c5 +Openstack-Request-Id: req-c011af96-c20c-470f-b305-d9e443ae36c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27593,14 +26136,14 @@ PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/instance_info', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f89251ad-555d-424f-89f3-9845e18964a9 +Openstack-Request-Id: req-d6feb123-7b65-44fd-a946-ddeb033ce87a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f89251ad-555d-424f-89f3-9845e18964a9 +Openstack-Request-Id: req-d6feb123-7b65-44fd-a946-ddeb033ce87a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27609,14 +26152,14 @@ DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-31ee24e9-f9fe-4cf2-b0c7-38750ed583a2 +Openstack-Request-Id: req-b748ce58-be86-4725-941e-2f866e33ad7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-31ee24e9-f9fe-4cf2-b0c7-38750ed583a2 +Openstack-Request-Id: req-b748ce58-be86-4725-941e-2f866e33ad7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27625,14 +26168,14 @@ DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-57a882a1-ec68-4704-8f83-22d99e898df7 +Openstack-Request-Id: req-9163008a-a94a-4733-94b0-2160a752fec5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-57a882a1-ec68-4704-8f83-22d99e898df7 +Openstack-Request-Id: req-9163008a-a94a-4733-94b0-2160a752fec5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -27641,572 +26184,447 @@ DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c0af0a39-7b31-49e0-a6fe-2733f7e40beb +Openstack-Request-Id: req-f464fed3-d7ea-4da5-a857-e19524aaa701 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c0af0a39-7b31-49e0-a6fe-2733f7e40beb +Openstack-Request-Id: req-f464fed3-d7ea-4da5-a857-e19524aaa701 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready_with_connection_error +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready_with_connection_error ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_072_lessee_admin_cannot_delete_nodes ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_072_lessee_admin_cannot_delete_nodes ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_fail -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_fail ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_compatible_with_idrac -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_compatible_with_idrac ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port ... ok -GOT:{'connectors': [{'uuid': '9e950087-4a1d-40b1-bb1d-eb677daa567e', 'connector_id': 'test-value-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/9e950087-4a1d-40b1-bb1d-eb677daa567e', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/9e950087-4a1d-40b1-bb1d-eb677daa567e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '51b65326-35eb-4818-811d-a11290cf88cb', 'connector_id': 'test-value-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/51b65326-35eb-4818-811d-a11290cf88cb', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/51b65326-35eb-4818-811d-a11290cf88cb', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'ddfe6bba-974d-43e1-92d6-a70b3cccebca', 'connector_id': 'test-value-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/ddfe6bba-974d-43e1-92d6-a70b3cccebca', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ddfe6bba-974d-43e1-92d6-a70b3cccebca', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/volume/connectors?fields=uuid,extra {} -GOT:{'connectors': [{'uuid': '4dcd7421-2cd8-4fde-8c1d-c8f3e9dd6eaa', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/4dcd7421-2cd8-4fde-8c1d-c8f3e9dd6eaa', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4dcd7421-2cd8-4fde-8c1d-c8f3e9dd6eaa', 'rel': 'bookmark'}]}, {'uuid': '67231feb-d87c-43a9-b473-6592734b612a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/67231feb-d87c-43a9-b473-6592734b612a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/67231feb-d87c-43a9-b473-6592734b612a', 'rel': 'bookmark'}]}, {'uuid': '1dcdfd66-ddc3-4f05-8fa8-1cf4fde878bd', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/1dcdfd66-ddc3-4f05-8fa8-1cf4fde878bd', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1dcdfd66-ddc3-4f05-8fa8-1cf4fde878bd', 'rel': 'bookmark'}]}]} -GET: /v1/volume/connectors?fields=connector_id&limit=2 {} -GOT:{'connectors': [{'connector_id': 'test-connector_id-0', 'links': [{'href': 'http://localhost/v1/volume/connectors/5b2481e0-6484-4bf8-893d-eaccdbbffea3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/5b2481e0-6484-4bf8-893d-eaccdbbffea3', 'rel': 'bookmark'}]}, {'connector_id': 'test-connector_id-1', 'links': [{'href': 'http://localhost/v1/volume/connectors/62f4d368-ee39-4b0b-a5a3-3adbeb5e3bad', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/62f4d368-ee39-4b0b-a5a3-3adbeb5e3bad', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=62f4d368-ee39-4b0b-a5a3-3adbeb5e3bad'} -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-8d2aa0e3-b1a4-49b5-8d21-cf541dee9911 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:29:42.616367+00:00', 'updated_at': None, '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?fields=connector_id,extra {} -GOT:{'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'}]} -GET: /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\": \"\"}"} -GET: /v1/volume/connectors/fdca3335-27fe-4b04-989c-6e4541e6c234 {} -GOT:{'uuid': 'fdca3335-27fe-4b04-989c-6e4541e6c234', 'created_at': '2025-02-07T21:29:43.349490+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/fdca3335-27fe-4b04-989c-6e4541e6c234', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/fdca3335-27fe-4b04-989c-6e4541e6c234', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/volume/connectors/fdca3335-27fe-4b04-989c-6e4541e6c234 {} -GOT:{'uuid': 'fdca3335-27fe-4b04-989c-6e4541e6c234', 'created_at': '2025-02-07T21:29:43.349490+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/fdca3335-27fe-4b04-989c-6e4541e6c234', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/fdca3335-27fe-4b04-989c-6e4541e6c234', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /volume/connectors/fdca3335-27fe-4b04-989c-6e4541e6c234 {} -GOT:{'uuid': 'fdca3335-27fe-4b04-989c-6e4541e6c234', 'created_at': '2025-02-07T21:29:43.349490+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/fdca3335-27fe-4b04-989c-6e4541e6c234', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/fdca3335-27fe-4b04-989c-6e4541e6c234', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GET: /v1/volume/connectors {} -GOT:{'connectors': [{'uuid': 'e7bf0acb-1cbb-4760-8290-fc884c089bcd', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/e7bf0acb-1cbb-4760-8290-fc884c089bcd', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e7bf0acb-1cbb-4760-8290-fc884c089bcd', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '23b22064-0605-4bd6-b710-cc26bc556cb5', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/23b22064-0605-4bd6-b710-cc26bc556cb5', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/23b22064-0605-4bd6-b710-cc26bc556cb5', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'd1c77843-ce15-4c5c-a35b-32c13edaae60', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/d1c77843-ce15-4c5c-a35b-32c13edaae60', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/d1c77843-ce15-4c5c-a35b-32c13edaae60', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'cf9d2fd6-5728-4734-ab31-ca3d69b3f51f', 'connector_id': 'test-connector_id-3', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/cf9d2fd6-5728-4734-ab31-ca3d69b3f51f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/cf9d2fd6-5728-4734-ab31-ca3d69b3f51f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '7265f9c9-74d6-4a96-801d-db50f1cf1257', 'connector_id': 'test-connector_id-4', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/7265f9c9-74d6-4a96-801d-db50f1cf1257', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/7265f9c9-74d6-4a96-801d-db50f1cf1257', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_with_smart_nic_port +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_with_smart_nic_port ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state ... ok +ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports +ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_130_nodes_portgroups_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_130_nodes_portgroups_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_040_nodes_management_boot_device_supported_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_040_nodes_management_boot_device_supported_get_admin ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__get_post_step_hook +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__get_post_step_hook ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_known_good_state +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_known_good_state ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_085_nodes_traits_put_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_085_nodes_traits_put_admin ... ok +ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path +ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__get_post_step_hook_no_hook_registered +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__get_post_step_hook_no_hook_registered ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports ... ok +ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path +ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_131_nodes_portgroups_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_131_nodes_portgroups_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_087_nodes_traits_put_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_087_nodes_traits_put_admin ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying_failed -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying_failed ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_incompatible_with_idrac -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_incompatible_with_idrac ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service_error -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service_error ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_073_lessee_manager_cannot_delete_nodes ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_073_lessee_manager_cannot_delete_nodes ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_cdrom_and_floppy -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_cdrom_and_floppy ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_041_nodes_management_boot_device_supported_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_041_nodes_management_boot_device_supported_get_member ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_086_nodes_traits_put_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_086_nodes_traits_put_member ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_deploy +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_deploy ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_clean_step +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_clean_step ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_true +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_true ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_132_nodes_portgroups_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_132_nodes_portgroups_get_observer ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor_error -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor_error ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_088_nodes_traits_put_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_088_nodes_traits_put_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_only_cdrom -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_only_cdrom ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_074_third_party_admin_cannot_delete_nodes ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_074_third_party_admin_cannot_delete_nodes ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service_error -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service_error ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_ramdisk -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_ramdisk ... ok +ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_add_secret_token +ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_add_secret_token ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_verify_step +ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_verify_step ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_042_nodes_management_boot_device_supported_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_042_nodes_management_boot_device_supported_get_reader ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail_deploy +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail_deploy ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports ... ok +ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_is_agent_token_present +ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_is_agent_token_present ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_087_nodes_traits_put_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_087_nodes_traits_put_observer ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot ... ok +ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_wipe_deploy_internal_info +ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_wipe_deploy_internal_info ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_pregenerated_token +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_pregenerated_token ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_133_nodes_portgroups_detail_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_133_nodes_portgroups_detail_get_admin ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_fast_track -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_fast_track ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_089_nodes_traits_put_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_089_nodes_traits_put_reader ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_immediate -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_immediate ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_maintenance +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_maintenance ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_075_owner_admin_can_validate_node ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_075_owner_admin_can_validate_node ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_134_nodes_portgroups_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_134_nodes_portgroups_detail_get_member ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_everything -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_everything ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_on_reset -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_on_reset ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__release_allocated_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__release_allocated_port ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_090_nodes_traits_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_090_nodes_traits_delete_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_not_inserted -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_not_inserted ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel ... ok -GET: /v1/volume/connectors {} -GOT:{'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'}]} -GET: /v1/volume/connectors {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/volume/connectors?sort_key=uuid {} -GOT:{'connectors': [{'uuid': '3a4342b3-7486-44cf-bf57-cc968953fc6e', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/3a4342b3-7486-44cf-bf57-cc968953fc6e', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3a4342b3-7486-44cf-bf57-cc968953fc6e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'bb39368c-5859-4eaa-ad90-5bf636fafae7', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/bb39368c-5859-4eaa-ad90-5bf636fafae7', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/bb39368c-5859-4eaa-ad90-5bf636fafae7', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'c608e006-27e9-46ba-a7ff-4530551030f2', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/c608e006-27e9-46ba-a7ff-4530551030f2', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/c608e006-27e9-46ba-a7ff-4530551030f2', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/volume/connectors?sort_key=foo {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-58fe21f6-10bb-4b75-877a-946cfed5e28f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-6f422e55-a1ff-40dd-9070-01f193094883 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} -POST: /v1/volume/connectors {'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-2bcc000a-4f2b-411c-8aa0-f946da8d5c53 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, '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'} -POST: /v1/volume/connectors {'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-48bc745a-4cd0-49ce-91c7-7c65c35fe8b7 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:29:45.285682+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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:29:45.285682+00:00', 'updated_at': None, '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'} -POST: /v1/volume/connectors {'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-99aa6dd1-9946-48f3-b6bb-48516e4d455b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} -POST: /v1/volume/connectors {'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_boot_instance +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_boot_instance ... ok +GOT:Response: 503 Service Unavailable Content-Type: application/json -Location: http://localhost/v1/volume/connectors/8b3801d4-7cc8-4d3c-90bd-0d85ce1bb1cb -Openstack-Request-Id: req-08b69987-8628-46b1-a228-6bb2eb31e6e6 +Openstack-Request-Id: req-0d5e113c-0850-4dc0-af5e-273f14762f32 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "8b3801d4-7cc8-4d3c-90bd-0d85ce1bb1cb", "created_at": "2025-02-07T21:29:46.023141+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8b3801d4-7cc8-4d3c-90bd-0d85ce1bb1cb", "rel": "self"}, {"href": "http://localhost/volume/connectors/8b3801d4-7cc8-4d3c-90bd-0d85ce1bb1cb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -GET: /v1/volume/connectors/8b3801d4-7cc8-4d3c-90bd-0d85ce1bb1cb {} -GOT:{'uuid': '8b3801d4-7cc8-4d3c-90bd-0d85ce1bb1cb', 'created_at': '2025-02-07T21:29:46.023141+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/8b3801d4-7cc8-4d3c-90bd-0d85ce1bb1cb', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/8b3801d4-7cc8-4d3c-90bd-0d85ce1bb1cb', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_135_nodes_portgroups_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_135_nodes_portgroups_detail_get_observer ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_detect_vendor -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_detect_vendor ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_security_parameters_update -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_security_parameters_update ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_specific -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_specific ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_076_owner_manager_can_validate_node -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_076_owner_manager_can_validate_node ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_supported_apply_times -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_supported_apply_times ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_unknown -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_unknown ... ok -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-13fd01a8-2fc6-41c0-98d4-39129a260220 +Openstack-Request-Id: req-0d5e113c-0850-4dc0-af5e-273f14762f32 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-37ba5510-b89a-4ab2-bee1-72486e8e6631 +Openstack-Request-Id: req-f56f6fcc-ffde-4c9c-9685-9ade279df4e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-37ba5510-b89a-4ab2-bee1-72486e8e6631 +Openstack-Request-Id: req-f56f6fcc-ffde-4c9c-9685-9ade279df4e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-580598ad-415d-4851-b824-71d8d869baed +Openstack-Request-Id: req-4d3f8149-56e4-4df6-86b3-7a1983d6b06f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"traits": ["trait1"]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-580598ad-415d-4851-b824-71d8d869baed +Openstack-Request-Id: req-4d3f8149-56e4-4df6-86b3-7a1983d6b06f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"traits": ["trait1"]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e35b4176-503c-4441-9b95-e6c4e42fa489 +Openstack-Request-Id: req-25730fdb-4946-47d2-ae9e-793cff98ddcb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"traits": ["trait1"]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e35b4176-503c-4441-9b95-e6c4e42fa489 +Openstack-Request-Id: req-25730fdb-4946-47d2-ae9e-793cff98ddcb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"traits": ["trait1"]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-99ff9f96-a813-4b99-8f6c-53cfc378e2f1 +Openstack-Request-Id: req-f93d4662-c3e4-428a-ac89-b709d89e8ff0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"traits": ["trait1"]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-99ff9f96-a813-4b99-8f6c-53cfc378e2f1 +Openstack-Request-Id: req-f93d4662-c3e4-428a-ac89-b709d89e8ff0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"traits": ["trait1"]} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7e24f175-39a8-4baa-bedf-fc2783394db7 +Openstack-Request-Id: req-fd60ee50-9083-4acb-87cd-2937dc20428c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7e24f175-39a8-4baa-bedf-fc2783394db7 +Openstack-Request-Id: req-fd60ee50-9083-4acb-87cd-2937dc20428c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d0a86e5b-9131-4db5-91fd-50a429695d12 +Openstack-Request-Id: req-165e2291-f9d3-4f54-afd4-cec9aacaeb87 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d0a86e5b-9131-4db5-91fd-50a429695d12 +Openstack-Request-Id: req-165e2291-f9d3-4f54-afd4-cec9aacaeb87 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-41405f9c-6610-4242-8f33-c911a9920480 +Openstack-Request-Id: req-39ab6c3a-0d1e-4494-b8b5-3008df504f14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-41405f9c-6610-4242-8f33-c911a9920480 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-7bb5e35d-d2a3-41fc-94a8-8bcdaa517d1b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-7bb5e35d-d2a3-41fc-94a8-8bcdaa517d1b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-63bbccdc-6102-417e-b37d-39fe6e958e98 +Openstack-Request-Id: req-39ab6c3a-0d1e-4494-b8b5-3008df504f14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_loading_error -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_loading_error ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_091_nodes_traits_delete_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_091_nodes_traits_delete_member ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_136_ports_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_136_ports_get_admin ... ok -ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables -ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_system_id -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_system_id ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus_without_ht_enabled +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus_without_ht_enabled ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_043_nodes_management_inject_nmi_put_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_043_nodes_management_inject_nmi_put_admin ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_088_nodes_traits_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_088_nodes_traits_delete_admin ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_boot_instance_no_power_on +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_boot_instance_no_power_on ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_134_nodes_portgroups_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_134_nodes_portgroups_detail_get_member ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_boot_iso +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_boot_iso ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_boot_setting_failure +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_boot_setting_failure ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_076_owner_manager_can_validate_node +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_076_owner_manager_can_validate_node ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_089_nodes_traits_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_089_nodes_traits_delete_member ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_nic_setting_failure +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_nic_setting_failure ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios_default +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios_default ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_044_nodes_management_inject_nmi_put_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_044_nodes_management_inject_nmi_put_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_135_nodes_portgroups_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_135_nodes_portgroups_detail_get_observer ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_ipa_debug +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_ipa_debug ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_BIOS_boot_mode +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_BIOS_boot_mode ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default_set +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default_set ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_always +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_always ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_local_boot +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_local_boot ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_090_nodes_traits_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_090_nodes_traits_delete_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_077_lessee_admin_can_validate_node ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_077_lessee_admin_can_validate_node ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok ... ok -ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_092_nodes_traits_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_092_nodes_traits_delete_reader ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info_exc -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info_exc ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_137_ports_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_137_ports_get_member ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client ... ok -ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_raid -ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_raid ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_capabilities +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_capabilities ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_045_nodes_management_inject_nmi_put_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_045_nodes_management_inject_nmi_put_reader ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_default +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_default ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_136_ports_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_136_ports_get_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_UEFI_boot_mode +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_UEFI_boot_mode ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_disable_ramdisk +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_disable_ramdisk ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_never +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_never ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_empty_list +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_empty_list ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_secure_boot +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_secure_boot ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_078_lessee_manager_can_validate_node ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_078_lessee_manager_can_validate_node ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_091_nodes_traits_trait_put_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_091_nodes_traits_trait_put_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_046_nodes_states_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_046_nodes_states_get_admin ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_swift +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_swift ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_137_ports_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_137_ports_get_member ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi +ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__guess_root_disk +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__guess_root_disk ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid_whole_disk +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid_whole_disk ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-cc53a86f-b465-4b11-9a7d-11e9cc045dba +Openstack-Request-Id: req-e09185ad-a73d-4672-8767-c52605a5c9ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28215,7 +26633,7 @@ PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-cbb393ad-9114-43b0-8069-143b6378c5ee +Openstack-Request-Id: req-6c7a7596-201f-400b-bff0-88549bf28d48 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28224,7 +26642,7 @@ PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4deb4cfb-1109-41db-b063-8f713abaec9d +Openstack-Request-Id: req-709a3dfd-1800-4fe3-95ba-7d5b2f11ee80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28233,7 +26651,7 @@ PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ead7e1f6-edf1-4c99-aef4-1ca627ce8803 +Openstack-Request-Id: req-5ebb627e-ebcc-4193-95f7-5c249c665903 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28242,7 +26660,7 @@ DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-80211799-ad1a-4665-bfb2-1f1691a0570e +Openstack-Request-Id: req-ce37216a-fd5a-4b79-83f0-31f47b8c43e4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28251,7 +26669,7 @@ DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d8dd7e6b-3c17-459f-a84b-c95b401bd7d7 +Openstack-Request-Id: req-ee22059b-e4fb-4b7e-bb2d-d4725ec6eacd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28260,7 +26678,7 @@ DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a786b638-008f-48e8-940f-7507ab760765 +Openstack-Request-Id: req-59138353-e2a8-42e0-86ee-6c77dbf45afa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28269,7 +26687,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bae9d4a8-bbe6-433c-9c18-9360618545b9 +Openstack-Request-Id: req-d400cf65-bc3a-41a8-81c5-af79d11fab24 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28278,7 +26696,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-31a44338-970c-46b9-9b08-8769d9598c33 +Openstack-Request-Id: req-c6e42e42-7760-48a0-9b0b-538e99bd8e58 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28287,7 +26705,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7ad29e0b-cd65-4c4d-9b31-da74d6cfefcf +Openstack-Request-Id: req-bfd61e6e-b3f0-4bb8-8ea7-870962c7c126 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28296,7 +26714,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c7f3db17-3954-457d-b09d-7af69d1b2dc9 +Openstack-Request-Id: req-41dce1f6-7caf-4feb-9720-d3059d83a02c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28305,7 +26723,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-cfdd32a5-f89b-480a-87b5-ff47f47e58ca +Openstack-Request-Id: req-0717b150-479e-410f-85a6-714a6f82cb9f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28314,7 +26732,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1a6bdc9e-9a7a-4d6f-a00b-a9c37b4a91c8 +Openstack-Request-Id: req-cb3cca31-ae2a-4e24-b218-750f03f61dc0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28323,7 +26741,7 @@ GET: /v1/ports {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-385b65ff-97a0-4912-bea2-838b39e4e486 +Openstack-Request-Id: req-3ac3856b-b980-40b1-b214-4c26e762206d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28332,92 +26750,203 @@ GET: /v1/ports {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c2afa330-6580-4f4d-a09b-8da772679d6c +Openstack-Request-Id: req-c1c66323-0b48-4ba6-b9ae-2a04b1d23a45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} API ACL Testing Path get /v1/ports -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_with_root_prefix -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_with_root_prefix ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_138_ports_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_138_ports_get_observer ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_093_nodes_traits_trait_put_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_093_nodes_traits_trait_put_admin ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok_bios -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok_bios ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode_fail -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode_fail ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_timeout +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_timeout ... ok +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-1ed88197-3e7d-4500-86c1-4023a81515f5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-0d757592-1a31-434d-b4f7-82890ffafd18 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"traits": ["trait1"]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-0d757592-1a31-434d-b4f7-82890ffafd18 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"traits": ["trait1"]} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-db1a9785-948d-4a6c-9983-67ecd682e8cc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-db1a9785-948d-4a6c-9983-67ecd682e8cc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-058d704c-1fb5-4032-8413-db8cdc317a1a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-058d704c-1fb5-4032-8413-db8cdc317a1a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-d417f617-a992-412d-b48f-e67b1916e6da +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-d417f617-a992-412d-b48f-e67b1916e6da +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-7f7b973d-0963-440c-82cb-017685ce3fd3 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-7f7b973d-0963-440c-82cb-017685ce3fd3 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-306081b9-294e-461b-b2ef-819061005c82 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-306081b9-294e-461b-b2ef-819061005c82 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-7a99043b-ef6e-4c54-be2f-46e2ef8e6780 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-7a99043b-ef6e-4c54-be2f-46e2ef8e6780 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-5e5b981c-cf48-456a-b24b-af97bfc0c4fd +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-5e5b981c-cf48-456a-b24b-af97bfc0c4fd +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_non_software_raid +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_non_software_raid ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_079_owner_member_can_validate_node ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_079_owner_member_can_validate_node ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_139_ports_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_139_ports_post_admin ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_094_nodes_traits_trait_put_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_094_nodes_traits_trait_put_member ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_001_values -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_001_values ... skipped 'These are fake reference values for YAML templating' -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_092_nodes_traits_trait_put_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_092_nodes_traits_trait_put_member ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_047_nodes_states_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_047_nodes_states_get_member ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_138_ports_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_138_ports_get_observer ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_partition +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_partition ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_bios +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_bios ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker ... ok GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2687af58-a978-4bd8-9eca-4c3b422668c0 +Openstack-Request-Id: req-40f7fcf7-9dfc-4847-bd77-26d6310f639c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2687af58-a978-4bd8-9eca-4c3b422668c0 +Openstack-Request-Id: req-40f7fcf7-9dfc-4847-bd77-26d6310f639c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28426,14 +26955,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9a41d60e-f000-4eec-a8ff-ec4d2f88ec45 +Openstack-Request-Id: req-e41e5243-3a92-40a6-aa8e-fa0624ac2521 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9a41d60e-f000-4eec-a8ff-ec4d2f88ec45 +Openstack-Request-Id: req-e41e5243-3a92-40a6-aa8e-fa0624ac2521 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28442,14 +26971,14 @@ DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6d72dd56-6052-478d-8de5-ab72b5bf5e25 +Openstack-Request-Id: req-c3f5f282-55ba-4eb7-a671-efafe20355c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6d72dd56-6052-478d-8de5-ab72b5bf5e25 +Openstack-Request-Id: req-c3f5f282-55ba-4eb7-a671-efafe20355c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28458,14 +26987,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c81f0656-0d48-4f1a-aea8-084eaaad2eb4 +Openstack-Request-Id: req-d5b3ee50-1a00-450a-85c9-e6dc945f0bfe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c81f0656-0d48-4f1a-aea8-084eaaad2eb4 +Openstack-Request-Id: req-d5b3ee50-1a00-450a-85c9-e6dc945f0bfe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28474,14 +27003,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d0d1da02-bb06-41e8-bd36-d29558cb2c62 +Openstack-Request-Id: req-0fb455b4-5f17-4cdc-bbeb-ffc0c405f932 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d0d1da02-bb06-41e8-bd36-d29558cb2c62 +Openstack-Request-Id: req-0fb455b4-5f17-4cdc-bbeb-ffc0c405f932 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28490,14 +27019,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/validate {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b15b289d-d9f5-47d7-9e0a-61614c4a8b0b +Openstack-Request-Id: req-a663f29f-5df6-4032-bb02-9b4d910f2c12 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b15b289d-d9f5-47d7-9e0a-61614c4a8b0b +Openstack-Request-Id: req-a663f29f-5df6-4032-bb02-9b4d910f2c12 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28506,14 +27035,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/validate {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7bd2527b-8285-48e8-b4b8-e3b492f87f5e +Openstack-Request-Id: req-4b846525-d3ff-4af8-a277-e1a66505cd13 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7bd2527b-8285-48e8-b4b8-e3b492f87f5e +Openstack-Request-Id: req-4b846525-d3ff-4af8-a277-e1a66505cd13 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28522,14 +27051,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d7d0cba7-cf02-4f7b-89c2-75a0aabbbf3c +Openstack-Request-Id: req-e73232e7-f903-441c-8a4c-f447535a0f25 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d7d0cba7-cf02-4f7b-89c2-75a0aabbbf3c +Openstack-Request-Id: req-e73232e7-f903-441c-8a4c-f447535a0f25 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28538,381 +27067,474 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/validate {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-993a8c48-3c1f-4795-abcc-1c2800f81e7c +Openstack-Request-Id: req-fe528ef3-ccd2-4a21-922e-943529b45046 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_fail +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_fail ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_080_lessee_member_cannot_validate_node ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_080_lessee_member_cannot_validate_node ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_093_nodes_traits_trait_put_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_093_nodes_traits_trait_put_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_048_nodes_states_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_048_nodes_states_get_reader ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_wdi +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_wdi ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_exception_bios +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_exception_bios ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_139_ports_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_139_ports_post_admin ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_multiple_supported_gpu +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_multiple_supported_gpu ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_exception_uefi +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_exception_uefi ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_clean_up_ipxe_config_uefi +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_clean_up_ipxe_config_uefi ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_network_error_fail +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_network_error_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_081_third_party_admin_cannot_validate_node +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_081_third_party_admin_cannot_validate_node ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_explicit_uuid +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_explicit_uuid ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_140_ports_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_140_ports_post_member ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso_deprecated -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso_deprecated ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection_no_inspection_ramdisk -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection_no_inspection_ramdisk ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_first_run -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_first_run ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_095_nodes_traits_trait_put_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_095_nodes_traits_trait_put_reader ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy ... ok -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -POST: /v1/volume/connectors {'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-adf908f0-9a64-49d0-a0cf-f0644195e353 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 123 is not of type 'string'\", \"debuginfo\": null}"} -POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 400 Bad Request +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_cpu +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_cpu ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_094_nodes_traits_trait_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_094_nodes_traits_trait_delete_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_049_nodes_states_power_put_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_049_nodes_states_power_put_admin ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_bios +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_bios ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_boot_mode +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_boot_mode ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_explicit_uuid_bios +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_explicit_uuid_bios ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_gpu +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_gpu ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_uefi +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_uefi ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_082_owner_admin_can_set_maintenance +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_082_owner_admin_can_set_maintenance ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_141_ports_post_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_141_ports_post_observer ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_095_nodes_traits_trait_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_095_nodes_traits_trait_delete_member ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_secure_boot +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_secure_boot ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail ... ok +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-2d0aef07-22f9-40b2-b357-eef68cc9007e +Openstack-Request-Id: req-ccd2e416-d062-481f-a214-646789be1ccc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'connector_id' is a required property\", \"debuginfo\": null}"} -POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e52fcdc8-d852-4954-994a-836d9a76d73d +Openstack-Request-Id: req-ccd2e416-d062-481f-a214-646789be1ccc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'node_uuid' is a required property\", \"debuginfo\": null}"} -POST: /v1/volume/connectors {'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 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d560230d-b3c8-4609-9571-f2293709ca7e +Openstack-Request-Id: req-67bc3042-d7b0-43a5-8e12-42026c32f084 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'type' is a required property\", \"debuginfo\": null}"} -POST: /v1/volume/connectors {'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 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cd0e0777-d8ae-48ce-a541-b09f6f536753 +Openstack-Request-Id: req-67bc3042-d7b0-43a5-8e12-42026c32f084 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"} -POST: /v1/volume/connectors {'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 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +GOT:Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-c33df08c-2e8f-427e-90b6-013b42c9d574 +Openstack-Request-Id: req-f4cb3533-3309-4e7e-878d-0066593f7296 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:29:54.498182+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 {'uuid': '54ceaf31-7421-4098-8eaf-255810b047a1', 'type': 'iqn', 'connector_id': 'test-connector-id-456', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 409 Conflict +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-75e7706c-8061-46e8-9907-f11374719441 +Openstack-Request-Id: req-f4cb3533-3309-4e7e-878d-0066593f7296 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type iqn and connector ID test-connector-id-456 already exists.\", \"debuginfo\": null}"} -POST: /v1/volume/connectors {'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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-92da1a13-cdb4-4db8-ad7f-bd28240b869f +Openstack-Request-Id: req-d3535f39-89ae-415b-b5d2-3d7b708e1da3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:29:55.219174+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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:29:55.219174+00:00', 'updated_at': None, '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'}}, '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 {'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 +{"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} +ACL Test GOT Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-ecf609d5-f771-479e-9c6d-384b7f5be818 +Openstack-Request-Id: req-d3535f39-89ae-415b-b5d2-3d7b708e1da3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:29:56.541145+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"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 503 Service Unavailable +{"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} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bc7b2dd2-56aa-44b2-9c23-d300429abdc4 +Openstack-Request-Id: req-e8fc16ab-67bf-44e2-829e-ba55ddebd172 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_081_third_party_admin_cannot_validate_node -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_081_third_party_admin_cannot_validate_node ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_002_nodes_post_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_002_nodes_post_admin ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_second_run -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_second_run ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_141_ports_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_141_ports_post_observer ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_fail_http_url_not_set -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_fail_http_url_not_set ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh ... ok -GET: /v1/ {} -GOT:{'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.80'}, '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'}]} -GET: /v1/ {} -GOT:{'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.80'}} -GET: /v1/ {} -GOT:{'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.80'}} -GET: /v1/volume/ {} -GOT:{'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/ {} -GOT:{'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/ {} -GOT:{'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 {} -GOT:{'connectors': []} -GET: /volume/connectors {} -GOT:{'connectors': []} -GET: /v1/volume/targets {} -GOT:{'targets': []} -GET: /volume/targets {} -GOT:{'targets': []} -GET: /v1/volume/ {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-9f39fd63-ee83-4f18-87fa-eaddfa3e89d6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -{'links': [{'id': 'port1', 'type': 'vif', 'ethernet_mac_address': '52:54:00:4f:ef:b7', 'vif_id': '96d4bfb9-b26e-41f3-bd2e-e6dcc1ccedb8', 'mtu': 1500}], 'networks': [{'id': '906e685a-b964-4d58-9939-9cf3af197c67', 'network_id': 'a87cc70a-3e15-4acf-8205-9b711a3531b7', 'type': 'ipv6', 'link': 'port1', 'ip_address': 'fd00:203:0:113::2', 'netmask': 'ffff:ffff:ffff:ffff::', 'routes': [{'network': '::0', 'netmask': '::0', 'gateway': 'fd00:203:0:113::1'}]}]} -[NodeHistory(conductor='fake-mini',created_at=2025-02-07T21:28:23Z,event='three',event_type='UNKNOWN',id=3,node_id=10,severity='INFO',updated_at=None,user=None,uuid=92f8a5d8-01cb-42d8-895a-bfd1715729b8), NodeHistory(conductor='fake-mini',created_at=2025-02-07T21:28:23Z,event='two',event_type='UNKNOWN',id=5,node_id=11,severity='INFO',updated_at=None,user=None,uuid=0bd5b7e3-5dfd-49f6-a351-cf0040e90745), NodeHistory(conductor='fake-mini',created_at=2025-02-07T21:28:23Z,event='three',event_type='UNKNOWN',id=6,node_id=11,severity='INFO',updated_at=None,user=None,uuid=e21c2ed5-b11e-4b45-923a-74263578425c), NodeHistory(conductor='fake-mini',created_at=2025-02-07T21:28:23Z,event='two',event_type='UNKNOWN',id=8,node_id=12,severity='INFO',updated_at=None,user=None,uuid=526056ef-d108-4f96-899b-85587c862f3a), NodeHistory(conductor='fake-mini',created_at=2025-02-07T21:28:23Z,event='three',event_type='UNKNOWN',id=9,node_id=12,severity='INFO',updated_at=None,user=None,uuid=4d91dc83-40a4-470e-9370-09ca8efc6613), NodeHistory(conductor='fake-mini',created_at=2025-02-07T21:28:23Z,event='final',event_type='UNKNOWN',id=10,node_id=10,severity='INFO',updated_at=None,user=None,uuid=7b06659d-3b98-4514-9ece-c0bdd98956e0)] -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_096_nodes_traits_trait_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_096_nodes_traits_trait_delete_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_ramdisk -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_ramdisk ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_fails -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_fails ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_fast_track -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_fast_track ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_auth_failure_logging_threshold -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_auth_failure_logging_threshold ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_082_owner_admin_can_set_maintenance -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_082_owner_admin_can_set_maintenance ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_003_nodes_post_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_003_nodes_post_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_142_ports_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_142_ports_detail_get_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_missing_stage2_id -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_missing_stage2_id ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable_deprecated -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable_deprecated ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device_bios -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device_bios ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_loading_error -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_loading_error ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_097_nodes_traits_trait_delete_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_097_nodes_traits_trait_delete_member ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image_anaconda -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image_anaconda ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_no_image_source_for_local_boot -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_no_image_source_for_local_boot ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_083_owner_manager_can_set_maintenance -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_083_owner_manager_can_set_maintenance ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_004_nodes_post_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_004_nodes_post_observer ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_rescue -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_rescue ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_143_ports_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_143_ports_detail_get_member ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_image_not_found -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_image_not_found ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_098_nodes_traits_trait_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_098_nodes_traits_trait_delete_reader ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_non_local -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_non_local ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_144_ports_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_144_ports_detail_get_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_084_lessee_admin_can_set_maintenance -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_084_lessee_admin_can_set_maintenance ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_005_nodes_get_node_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_005_nodes_get_node_admin ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_polling -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_polling ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok_bios -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok_bios ... ok -ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image -ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_cleaning_deploying -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_cleaning_deploying ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent_bios -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent_bios ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image ... ok -ACL Test GOT Response: 503 Service Unavailable +{"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} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-63bbccdc-6102-417e-b37d-39fe6e958e98 +Openstack-Request-Id: req-e8fc16ab-67bf-44e2-829e-ba55ddebd172 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -GOT:Response: 403 Forbidden +{"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} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3fdd37c7-5a5b-400e-92ae-30100714ae17 +Openstack-Request-Id: req-ac452e7d-645d-4e3b-9ab7-c23bc780156a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3fdd37c7-5a5b-400e-92ae-30100714ae17 +Openstack-Request-Id: req-ac452e7d-645d-4e3b-9ab7-c23bc780156a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None +{"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} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-9235be02-c381-48a6-939d-50669814d0d2 +Openstack-Request-Id: req-2c7ed489-96c9-4e9a-b76a-29137cd664c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-9235be02-c381-48a6-939d-50669814d0d2 +Openstack-Request-Id: req-2c7ed489-96c9-4e9a-b76a-29137cd664c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7c57bfc8-e0c0-4a6a-9a1a-14c773d4a26f +Openstack-Request-Id: req-77b499a4-929f-4a19-9e0c-ca0341072821 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_050_nodes_states_power_put_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_050_nodes_states_power_put_member ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_supported_gpu +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_supported_gpu ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_agent_busy +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_agent_busy ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6 +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6 ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_uefi +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_uefi ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_all +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_all ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_142_ports_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_142_ports_detail_get_admin ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_083_owner_manager_can_set_maintenance +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_083_owner_manager_can_set_maintenance ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6_uefi +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6_uefi ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_096_nodes_traits_trait_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_096_nodes_traits_trait_delete_observer ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_051_nodes_states_power_put_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_051_nodes_states_power_put_reader ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image_bios +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image_bios ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_with_prep +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_with_prep ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_143_ports_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_143_ports_detail_get_member ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_collect_logs +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_collect_logs ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker ... ok +ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_get_properties ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_084_lessee_admin_can_set_maintenance +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_084_lessee_admin_can_set_maintenance ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_post_clean_step_hook +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_post_clean_step_hook ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_097_nodes_vifs_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_097_nodes_vifs_get_admin ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_052_nodes_states_boot_mode_put_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_052_nodes_states_boot_mode_put_admin ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error ... ok +ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_boot_type_order +ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_boot_type_order ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount ... ok +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_volume_type +ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_volume_type ... ok +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot ... ok +ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_raid_controller +ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_raid_controller ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_144_ports_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_144_ports_detail_get_observer ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot ... ok +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_085_lessee_manager_can_set_maintenance +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_085_lessee_manager_can_set_maintenance ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_098_nodes_vifs_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_098_nodes_vifs_get_member ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings ... ok +ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_validate +ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_validate ... ok +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable +ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_053_nodes_states_boot_mode_put_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_053_nodes_states_boot_mode_put_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all_disable_ramdisk +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all_disable_ramdisk ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok ... ok +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_145_ports_port_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_145_ports_port_id_get_admin ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises ... ok +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_099_nodes_vifs_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_099_nodes_vifs_get_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty_no_path +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty_no_path ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy_with_deploy_steps +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy_with_deploy_steps ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_086_owner_member_can_set_maintenance +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_086_owner_member_can_set_maintenance ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_switch_to_tenant_network +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_switch_to_tenant_network ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent ... ok +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_054_nodes_states_boot_mode_put_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_054_nodes_states_boot_mode_put_reader ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned ... ok +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_none +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_none ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok ... ok +ironic.tests.unit.drivers.modules.test_image_utils.Ilo5ImageHandlerTestCase.test_ilo5_kernel_param_config +ironic.tests.unit.drivers.modules.test_image_utils.Ilo5ImageHandlerTestCase.test_ilo5_kernel_param_config ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_146_ports_port_id_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_146_ports_port_id_get_member ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_string_type +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_string_type ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_switch_to_tenant_network_fails +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_switch_to_tenant_network_fails ... ok +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down ... ok +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system ... ok +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7c57bfc8-e0c0-4a6a-9a1a-14c773d4a26f +Openstack-Request-Id: req-bb7fcd6e-4f5e-4e48-b724-13cebdab3ead X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-bb7fcd6e-4f5e-4e48-b724-13cebdab3ead +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f1945289-cb48-441e-8545-4ee164b0862a +Openstack-Request-Id: req-04e1a3e9-7f91-43c9-a1fb-c9bf6c293245 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f1945289-cb48-441e-8545-4ee164b0862a +Openstack-Request-Id: req-04e1a3e9-7f91-43c9-a1fb-c9bf6c293245 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28921,46 +27543,46 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-be58ee25-6d7f-422c-b229-9987546e9676 +Openstack-Request-Id: req-2b6838d4-caac-4f50-82d3-fb7e160cef15 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-be58ee25-6d7f-422c-b229-9987546e9676 +Openstack-Request-Id: req-2b6838d4-caac-4f50-82d3-fb7e160cef15 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -GOT:Response: 503 Service Unavailable +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ad399da6-c8f3-4e1f-aa00-c08eb50f442a +Openstack-Request-Id: req-03deac82-6aea-4153-b8c0-e4864ee8640d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ad399da6-c8f3-4e1f-aa00-c08eb50f442a +Openstack-Request-Id: req-03deac82-6aea-4153-b8c0-e4864ee8640d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-982cae45-b718-4a8e-893f-eb7c364233bf +Openstack-Request-Id: req-8ae4b0af-f828-4f38-97d4-6c0265fc9bad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-982cae45-b718-4a8e-893f-eb7c364233bf +Openstack-Request-Id: req-8ae4b0af-f828-4f38-97d4-6c0265fc9bad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -28969,274 +27591,152 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-56043ebe-6753-4430-b3e1-bbc4a391c273 +Openstack-Request-Id: req-fa3563f8-b730-4d3a-bdc0-e82e99fb59fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-bc7b2dd2-56aa-44b2-9c23-d300429abdc4 +Openstack-Request-Id: req-fa3563f8-b730-4d3a-bdc0-e82e99fb59fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-ae4264e4-0127-4ada-92af-916d16ee71d4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-ae4264e4-0127-4ada-92af-916d16ee71d4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-e230d8f5-b387-4aea-bb6c-ff8dee03aeb6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-e230d8f5-b387-4aea-bb6c-ff8dee03aeb6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-8f335c46-b7eb-421e-98a1-deb752494bc9 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:30:08.214335+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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 -{node_ident} -driver -fake-driverz -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-8f335c46-b7eb-421e-98a1-deb752494bc9 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:30:08.214335+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled -ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_099_nodes_vifs_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_099_nodes_vifs_get_admin ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_145_ports_port_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_145_ports_port_id_get_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_006_nodes_get_node_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_006_nodes_get_node_member ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_is_a_path -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_is_a_path ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_085_lessee_manager_can_set_maintenance -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_085_lessee_manager_can_set_maintenance ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track_via_driver_info -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track_via_driver_info ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_onetime_smci -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_onetime_smci ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_clean ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_146_ports_port_id_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_146_ports_port_id_get_member ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_100_nodes_vifs_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_100_nodes_vifs_get_member ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_007_nodes_get_node_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_007_nodes_get_node_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_086_owner_member_can_set_maintenance -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_086_owner_member_can_set_maintenance ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue_fails -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue_fails ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result2 -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result2 ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent_smci -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent_smci ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_clean ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_147_ports_port_id_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_147_ports_port_id_get_observer ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_clean -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_clean ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_101_nodes_vifs_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_101_nodes_vifs_get_reader ... ok -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d219926e-573a-48e4-a33d-06028e3dd37f +Openstack-Request-Id: req-2142bd4f-87b6-41d1-ac20-4587753e0d33 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d219926e-573a-48e4-a33d-06028e3dd37f +Openstack-Request-Id: req-2142bd4f-87b6-41d1-ac20-4587753e0d33 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-036e8915-31d3-48dc-aff2-123e84e60635 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:30:14.747681+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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 -{node_ident} -driver -fake-driverz -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-036e8915-31d3-48dc-aff2-123e84e60635 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:30:14.747681+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_087_lessee_member_cannot_set_maintenance -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_087_lessee_member_cannot_set_maintenance ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean_fails -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean_fails ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_008_nodes_get_node_other_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_008_nodes_get_node_other_admin ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_deploy -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_deploy ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_bios -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_bios ... ok -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_with_reservation -ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_with_reservation ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_148_ports_port_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_148_ports_port_id_patch_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_clean ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track_impossible -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track_impossible ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists ... ok -GOT:Response: 200 OK +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7df538fb-6bab-4c34-bb21-e8914548f0ec +Openstack-Request-Id: req-a61d150a-e22d-469f-b572-b344b6c6a5e3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:30:18.440842+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:list\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7df538fb-6bab-4c34-bb21-e8914548f0ec +Openstack-Request-Id: req-a61d150a-e22d-469f-b572-b344b6c6a5e3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:30:18.440842+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -API ACL Testing Path get /v1/nodes -GET: /v1/nodes {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:list\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-21aa4f12-82a6-4b0e-8741-d8b7cf22ea5c +Openstack-Request-Id: req-9c8b62a1-1ea8-4742-9219-0a86db3ffef6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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": "96ace903-ae85-4bdc-921d-245136886e02", "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"}]}]} -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_uefi -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_uefi ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_102_nodes_vifs_post_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_102_nodes_vifs_post_admin ... ok +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper +ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name ... ok +ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class +ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_100_nodes_vifs_post_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_100_nodes_vifs_post_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_087_lessee_member_cannot_set_maintenance +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_087_lessee_member_cannot_set_maintenance ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_055_nodes_states_secure_boot_put_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_055_nodes_states_secure_boot_put_admin ... ok +ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper +ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper ... ok +ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad +ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru ... ok +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system_exception +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system_exception ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_147_ports_port_id_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_147_ports_port_id_get_observer ... ok +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_get_power_state_fails +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_get_power_state_fails ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach ... ok +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso ... ok +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_recovers +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_recovers ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_101_nodes_vifs_post_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_101_nodes_vifs_post_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_088_third_party_admin_cannot_set_maintenance ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_088_third_party_admin_cannot_set_maintenance ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk_rescue -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk_rescue ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_deploy ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_009_nodes_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_009_nodes_get_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_config -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_config ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_bios -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_bios ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_149_ports_port_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_149_ports_port_id_patch_member ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered ... ok +ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_no_power_on_support +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_no_power_on_support ... ok +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create ... ok +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_056_nodes_states_secure_boot_put_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_056_nodes_states_secure_boot_put_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_148_ports_port_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_148_ports_port_id_patch_admin ... ok +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_destroy_node_history_by_uuid +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_destroy_node_history_by_uuid ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_None +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_None ... ok +ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node +ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node ... ok ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-993a8c48-3c1f-4795-abcc-1c2800f81e7c +Openstack-Request-Id: req-fe528ef3-ccd2-4a21-922e-943529b45046 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29245,14 +27745,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/validate {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0f18f925-b537-452c-b826-281a4b75a40f +Openstack-Request-Id: req-8254c694-5b45-4800-9f0c-22e5c814b251 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0f18f925-b537-452c-b826-281a4b75a40f +Openstack-Request-Id: req-8254c694-5b45-4800-9f0c-22e5c814b251 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29261,14 +27761,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance None GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d74e5d5d-bd65-4b8f-a785-ae216c568d27 +Openstack-Request-Id: req-bfcb507c-4781-492f-a60f-cbcf7ffa6599 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d74e5d5d-bd65-4b8f-a785-ae216c568d27 +Openstack-Request-Id: req-bfcb507c-4781-492f-a60f-cbcf7ffa6599 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29277,14 +27777,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance None GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7cd79922-200a-4978-a175-911a1c58eab6 +Openstack-Request-Id: req-c9356fc4-5386-4add-ab06-db6e82d77eed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7cd79922-200a-4978-a175-911a1c58eab6 +Openstack-Request-Id: req-c9356fc4-5386-4add-ab06-db6e82d77eed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29293,14 +27793,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance None GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-82cd793b-b4cf-42f9-8bd9-a41e370d77ce +Openstack-Request-Id: req-85ded9c8-86b8-48d9-b53a-70811ce15228 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-82cd793b-b4cf-42f9-8bd9-a41e370d77ce +Openstack-Request-Id: req-85ded9c8-86b8-48d9-b53a-70811ce15228 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29309,14 +27809,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance None GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-184cfa30-aa08-4dcb-bd0d-e61edc6d9858 +Openstack-Request-Id: req-bca6e721-40f6-4018-9bd4-5d9070225161 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-184cfa30-aa08-4dcb-bd0d-e61edc6d9858 +Openstack-Request-Id: req-bca6e721-40f6-4018-9bd4-5d9070225161 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29325,14 +27825,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance None GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-008973eb-2f31-4a2a-adf0-077ffc37ae9d +Openstack-Request-Id: req-f9d4c9e1-7a8d-4ad1-b7cf-57a3211bb344 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-008973eb-2f31-4a2a-adf0-077ffc37ae9d +Openstack-Request-Id: req-f9d4c9e1-7a8d-4ad1-b7cf-57a3211bb344 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29341,14 +27841,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0af37b04-d7d3-4c51-9fd3-cdd19d2a047d +Openstack-Request-Id: req-1e74e63c-d387-49ff-9b38-6394fad09f2c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0af37b04-d7d3-4c51-9fd3-cdd19d2a047d +Openstack-Request-Id: req-1e74e63c-d387-49ff-9b38-6394fad09f2c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29357,172 +27857,376 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a9fda9fd-30e2-42c1-a89a-9798c3ef955a +Openstack-Request-Id: req-c3ba3397-2dde-4cbb-b693-57ce21954e74 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a9fda9fd-30e2-42c1-a89a-9798c3ef955a +Openstack-Request-Id: req-c3ba3397-2dde-4cbb-b693-57ce21954e74 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_clean ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_debug -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_debug ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_uefi -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_uefi ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_103_nodes_vifs_post_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_103_nodes_vifs_post_member ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_action_oob_power_off +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_action_oob_power_off ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure ... ok +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id ... ok +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_create_subscription +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_create_subscription ... ok +ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails +ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_102_nodes_vifs_post_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_102_nodes_vifs_post_observer ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_false +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_false ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_action_oob_power_off_failed +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_action_oob_power_off_failed ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked ... ok +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id_not_found +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id_not_found ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_089_owner_admin_can_unset_maintenance ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_089_owner_admin_can_unset_maintenance ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_apply_configuration -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_apply_configuration ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_010_nodes_get_other_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_010_nodes_get_other_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_150_ports_port_id_patch_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_150_ports_port_id_patch_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_104_nodes_vifs_post_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_104_nodes_vifs_post_reader ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_minimum_password_length -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_minimum_password_length ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_indicator_state +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_indicator_state ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree ... ok +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_operation_exeption +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_operation_exeption ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_057_nodes_states_secure_boot_put_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_057_nodes_states_secure_boot_put_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_149_ports_port_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_149_ports_port_id_patch_member ... ok +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id ... ok +ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector +ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_invalid +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_invalid ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_off_fails +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_off_fails ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods ... ok +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached ... ok +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id_empty +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id_empty ... ok +ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked +ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_with_token +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_with_token ... ok +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_doesnt_complete +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_doesnt_complete ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_103_nodes_vifs_node_vif_ident_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_103_nodes_vifs_node_vif_ident_delete_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_raises_ilo_error +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_raises_ilo_error ... ok +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_090_owner_manager_can_unset_maintenance ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_090_owner_manager_can_unset_maintenance ... ok -ACL Test GOT Response: 200 OK +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance ... ok +ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on +ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_150_ports_port_id_patch_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_150_ports_port_id_patch_observer ... ok +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid_not_found +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid_not_found ... ok +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-21aa4f12-82a6-4b0e-8741-d8b7cf22ea5c +Openstack-Request-Id: req-77b499a4-929f-4a19-9e0c-ca0341072821 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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": "96ace903-ae85-4bdc-921d-245136886e02", "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"}]}]} -API ACL Testing Path get /v1/nodes -GET: /v1/nodes {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4b8a72d4-870f-4a43-8cb9-ef4ba481a55d +Openstack-Request-Id: req-35e50d2d-3e8d-4366-bc52-19792a7fdc20 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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": "2dba83b3-8791-4f7c-9529-c604632c99eb", "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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4b8a72d4-870f-4a43-8cb9-ef4ba481a55d +Openstack-Request-Id: req-35e50d2d-3e8d-4366-bc52-19792a7fdc20 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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": "2dba83b3-8791-4f7c-9529-c604632c99eb", "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"}]}]} -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-dfa08881-c4fe-45a6-b833-04091b76efed +Openstack-Request-Id: req-bd6fa367-c21e-4ce0-8ccc-6365a79edf3f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:30:24.956042+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-02-07T21:30:24.961301+00:00", "updated_at": "2025-02-07T21:30:24.967538+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "7cc46719-3ec4-4481-81f8-e8aa96dcb949", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "7cc46719-3ec4-4481-81f8-e8aa96dcb949", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-02-07T21:30:24.986503+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-bd6fa367-c21e-4ce0-8ccc-6365a79edf3f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-6acc418a-ef52-479e-9306-647f63aa3665 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-6acc418a-ef52-479e-9306-647f63aa3665 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-dd236c39-a47f-4116-af7b-f476344e4358 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-dd236c39-a47f-4116-af7b-f476344e4358 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-a1b53f41-1323-4bad-b391-4722d5c81e57 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-a1b53f41-1323-4bad-b391-4722d5c81e57 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-73501bc6-fb84-47a0-841c-2cef8f35fa92 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-73501bc6-fb84-47a0-841c-2cef8f35fa92 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-39b08e3b-2545-44e4-9551-dae766cb7a63 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dfa08881-c4fe-45a6-b833-04091b76efed +Openstack-Request-Id: req-39b08e3b-2545-44e4-9551-dae766cb7a63 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:30:24.956042+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-02-07T21:30:24.961301+00:00", "updated_at": "2025-02-07T21:30:24.967538+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "7cc46719-3ec4-4481-81f8-e8aa96dcb949", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "7cc46719-3ec4-4481-81f8-e8aa96dcb949", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-02-07T21:30:24.986503+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]}ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_151_ports_port_id_delete_admin +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-1eada5ca-5f4f-4288-afb9-3bf73b7d7940 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_fails +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_fails ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_058_nodes_states_provision_put_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_058_nodes_states_provision_put_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network ... ok +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update ... ok +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_race +ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_race ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_member ... ok +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list_sorted +ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list_sorted ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true_default +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true_default ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_inspection_network +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_inspection_network ... ok +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_091_lessee_admin_can_unset_maintenance +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_091_lessee_admin_can_unset_maintenance ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_151_ports_port_id_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_151_ports_port_id_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_011_nodes_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_011_nodes_detail_get_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_usb -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_usb ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_active -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_active ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_boot_iso -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_boot_iso ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_clean ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_105_nodes_vifs_node_vif_ident_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_105_nodes_vifs_node_vif_ident_delete_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_bios_registry_save -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_bios_registry_save ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue +ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success +ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_indicators +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_indicators ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req ... ok +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_059_nodes_states_provision_put_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_059_nodes_states_provision_put_member ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_ramdisk_deploy +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_ramdisk_deploy ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_bad_command_result +ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_bad_command_result ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps ... ok +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_152_ports_port_id_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_152_ports_port_id_delete_member ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_correct_vendor -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_correct_vendor ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_012_nodes_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_012_nodes_detail_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_091_lessee_admin_can_unset_maintenance -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_091_lessee_admin_can_unset_maintenance ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_deploy ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_empty_bios_registry -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_empty_bios_registry ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_exc +ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_exc ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_configdrive_as_dict +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_configdrive_as_dict ... ok +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_092_lessee_manager_can_unset_maintenance +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_092_lessee_manager_can_unset_maintenance ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_060_nodes_states_provision_put_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_060_nodes_states_provision_put_reader ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_missing_command_result +ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_missing_command_result ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path ... ok +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits +ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive_as_dict +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive_as_dict ... ok GET: /v1/ports {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c5160dab-833e-4cd0-85d9-24fd8bd8d1d8 +Openstack-Request-Id: req-81a2c624-b466-44a9-96c8-f852e38dcba5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29531,7 +28235,7 @@ POST: /v1/ports {'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-c72fbdac-8be4-48fe-8c6f-bcfb2aaf972a +Openstack-Request-Id: req-75f4b396-1ea0-42f2-9522-9242b8e49a3c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29540,7 +28244,7 @@ POST: /v1/ports {'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-655a2aee-423d-4eb0-9542-bdd8e277b170 +Openstack-Request-Id: req-5524ad84-5280-47f9-b12c-56a15fff3caf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29549,7 +28253,7 @@ POST: /v1/ports {'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-15b9435f-b1eb-4782-a29f-a55697f26754 +Openstack-Request-Id: req-b8fa144a-887d-4e8c-9090-43d9cb8baf80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29558,7 +28262,7 @@ GET: /v1/ports/detail {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a81cdeff-40dc-4740-bb24-1d182ffce887 +Openstack-Request-Id: req-67d92d6a-9de4-4a49-9f47-47f7a88d229e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29567,7 +28271,7 @@ GET: /v1/ports/detail {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f14b9d58-7b4b-4e33-bada-d373c3c31979 +Openstack-Request-Id: req-99896226-bff0-4388-be4e-d354fdde4a6a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29576,7 +28280,7 @@ GET: /v1/ports/detail {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-95deb685-a827-48ba-ae8d-a13df9d4b7b3 +Openstack-Request-Id: req-4605ab35-9200-400b-bd56-cd0c71fdf300 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29585,7 +28289,7 @@ GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d2a92a99-4b0a-41c2-b296-6c1df7656467 +Openstack-Request-Id: req-6a3d949c-9932-4737-b7d6-ced836737bb6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29594,7 +28298,7 @@ GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d1b4254f-aa8d-421a-a909-9742584c16d2 +Openstack-Request-Id: req-6a0ffc9c-e283-4842-a63b-ddb9177063f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29603,16 +28307,7 @@ GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1097c78c-4f01-46e5-8bf3-44b05e98facc -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-2db3c427-1db6-4b83-ba39-1765c070957a +Openstack-Request-Id: req-9ef2b4ad-bfff-487a-ab60-49ab34099b52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29621,7 +28316,7 @@ PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c4e9ca71-4681-43ad-b145-390c420a698d +Openstack-Request-Id: req-421d93b9-ede9-4669-8183-6137254be472 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29630,172 +28325,179 @@ PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f7dd5715-e7a3-43f9-a3b4-d9cea45f941d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-e3e6eb56-b7f0-4544-8caa-c52e4abfc83a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-7a9c47c1-bfd6-4fb3-b2eb-bce539d27632 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_153_ports_port_id_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_153_ports_port_id_delete_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_clean ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection_missing -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection_missing ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_106_nodes_vifs_node_vif_ident_delete_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_106_nodes_vifs_node_vif_ident_delete_member ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi_bios -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi_bios ... ok - -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-0661c507-7105-4c0e-ac99-e5a0eb203c55 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-0661c507-7105-4c0e-ac99-e5a0eb203c55 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-eecc9997-ee54-45e8-81f7-b947f504ca0d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:30:26.305878+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-02-07T21:30:26.313104+00:00", "updated_at": "2025-02-07T21:30:26.319803+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "74eba5d4-2cbb-48e4-bfd9-156f833b4abe", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "74eba5d4-2cbb-48e4-bfd9-156f833b4abe", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-02-07T21:30:26.340684+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-eecc9997-ee54-45e8-81f7-b947f504ca0d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:30:26.305878+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-02-07T21:30:26.313104+00:00", "updated_at": "2025-02-07T21:30:26.319803+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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "74eba5d4-2cbb-48e4-bfd9-156f833b4abe", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}], "conductor": null, "allocation_uuid": "74eba5d4-2cbb-48e4-bfd9-156f833b4abe", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-02-07T21:30:26.340684+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/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"}]}]}ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_exception_bios_registry -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_exception_bios_registry ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_092_lessee_manager_can_unset_maintenance -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_092_lessee_manager_can_unset_maintenance ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_013_nodes_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_013_nodes_detail_get_observer ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_deploy ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_kernel_ramdisk -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_kernel_ramdisk ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration ... ok -ACL Test GOT Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-56043ebe-6753-4430-b3e1-bbc4a391c273 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-8067e2f7-a975-4b96-9f52-c48b4b6256ac -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-8067e2f7-a975-4b96-9f52-c48b4b6256ac +Openstack-Request-Id: req-89073a79-676b-4d34-ba9e-4cd01af3c55e X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} -GOT:Response: 503 Service Unavailable +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e63f53ca-8dfa-4a35-b6fe-62d07124c335 +Openstack-Request-Id: req-6c282215-1f09-4542-8261-26e8e720cbed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e63f53ca-8dfa-4a35-b6fe-62d07124c335 +Openstack-Request-Id: req-9b19f4d9-60e2-4867-a867-9b5db2257138 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a8d32207-53c6-4c1a-8bb2-b522a7cf01ec +Openstack-Request-Id: req-c6fa6c1e-95c8-4f5e-9ac1-00e945655f51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_153_ports_port_id_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_153_ports_port_id_delete_observer ... ok +ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_with_smartnic_port +ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_with_smartnic_port ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_106_nodes_management_indicators_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_106_nodes_management_indicators_get_admin ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_node_network_data +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_node_network_data ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found ... ok +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_093_owner_member_can_unset_maintnenance +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_093_owner_member_can_unset_maintnenance ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_create +ironic.tests.unit.objects.test_node.TestNodeObject.test_create ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id +ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_061_nodes_states_raid_put_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_061_nodes_states_raid_put_admin ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties +ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat_agent_token +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat_agent_token ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_154_nodes_ports_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_154_nodes_ports_get_admin ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id +ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id ... ok +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_107_nodes_management_indicators_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_107_nodes_management_indicators_get_member ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits +ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_094_lessee_member_cannot_unset_maintenance +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_094_lessee_member_cannot_unset_maintenance ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id +ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook ... ok +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_locked +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_locked ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_062_nodes_states_raid_put_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_062_nodes_states_raid_put_member ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_default +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_default ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_155_nodes_ports_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_155_nodes_ports_get_member ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_file_image +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_file_image ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_expected_exception +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_expected_exception ... ok ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a8d32207-53c6-4c1a-8bb2-b522a7cf01ec +Openstack-Request-Id: req-9c8b62a1-1ea8-4742-9219-0a86db3ffef6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} -GOT:Response: 503 Service Unavailable +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f0b95342-2093-48ad-ab80-be52892bd1e9 +Openstack-Request-Id: req-12e55cb7-c68e-462a-964d-22f7f632b5b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f0b95342-2093-48ad-ab80-be52892bd1e9 +Openstack-Request-Id: req-12e55cb7-c68e-462a-964d-22f7f632b5b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5f93889c-a841-47a7-b409-2b7ff708bd1c +Openstack-Request-Id: req-e32ac873-3e69-4ceb-8353-fac205504e08 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5f93889c-a841-47a7-b409-2b7ff708bd1c +Openstack-Request-Id: req-e32ac873-3e69-4ceb-8353-fac205504e08 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -29804,268 +28506,211 @@ 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-759dd0cd-09f5-4de1-9496-0db4967b1d19 +Openstack-Request-Id: req-e223519e-e03a-4cd6-8da6-c6a88c62eba8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-759dd0cd-09f5-4de1-9496-0db4967b1d19 +Openstack-Request-Id: req-e223519e-e03a-4cd6-8da6-c6a88c62eba8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 -GOT:Response: 503 Service Unavailable +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9f0d8179-579c-4ee2-8ec8-fc8bc8bc3a4a +Openstack-Request-Id: req-7fe19358-9a82-4e91-a243-bcefa84e993e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9f0d8179-579c-4ee2-8ec8-fc8bc8bc3a4a +Openstack-Request-Id: req-7fe19358-9a82-4e91-a243-bcefa84e993e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 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-e5b3f164-b3ed-4872-a148-10ea7dc3c429 +Openstack-Request-Id: req-5f9e3bcb-6c1d-47bc-a899-c04f5b8f582b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_154_nodes_ports_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_154_nodes_ports_get_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_no_bios_registry -ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_no_bios_registry ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_107_nodes_vifs_node_vif_ident_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_107_nodes_vifs_node_vif_ident_delete_reader ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_clean -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_clean ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_ramdisk -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_ramdisk ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_bios -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_bios ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_014_nodes_node_ident_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_014_nodes_node_ident_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_093_owner_member_can_unset_maintnenance -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_093_owner_member_can_unset_maintnenance ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_deploy -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_deploy ... ok -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing -ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback_bios -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback_bios ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_108_nodes_management_indicators_get_allow -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_108_nodes_management_indicators_get_allow ... skipped 'Not implemented yet' -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_155_nodes_ports_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_155_nodes_ports_get_member ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps_config_priority -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps_config_priority ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_other_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_other_arch ... ok -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_default -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_default ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_deploy_steps -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_deploy_steps ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_015_nodes_node_ident_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_015_nodes_node_ident_get_member ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_uefi -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_uefi ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_094_lessee_member_cannot_unset_maintenance -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_094_lessee_member_cannot_unset_maintenance ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_109_nodes_management_indicators_component_get_allow -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_109_nodes_management_indicators_component_get_allow ... skipped 'Not implemented yet' -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok ... ok -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_delete_subscription -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_delete_subscription ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_uefi -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_uefi ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_bios -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_bios ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_156_nodes_ports_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_156_nodes_ports_get_observer ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_hostname -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_hostname ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns ... ok -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_all -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_all ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 ... ok - -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 200 OK +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e5345908-21f7-40ba-953d-bf6a2ec5ce30 +Openstack-Request-Id: req-5f9e3bcb-6c1d-47bc-a899-c04f5b8f582b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:30:26.980808+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e5345908-21f7-40ba-953d-bf6a2ec5ce30 +Openstack-Request-Id: req-f158223e-062a-4abc-9513-0acb3afb407c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:30:26.980808+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-f158223e-062a-4abc-9513-0acb3afb407c +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fff29040-96ca-4f39-a987-f3fa91057d33 +Openstack-Request-Id: req-82f405c7-ec10-41be-852b-cb7d31b0c9d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fff29040-96ca-4f39-a987-f3fa91057d33 +Openstack-Request-Id: req-82f405c7-ec10-41be-852b-cb7d31b0c9d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_110_nodes_management_indicators_component_ind_ident_get_allow -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_110_nodes_management_indicators_component_ind_ident_get_allow ... skipped 'Not implemented yet' -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_016_nodes_node_ident_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_016_nodes_node_ident_get_observer ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method ... ok +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-d940ae2d-48b2-4f18-bacf-04f4de7b29d4 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_agent_token +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_agent_token ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_108_nodes_management_indicators_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_108_nodes_management_indicators_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_095_third_party_admin_cannot_unset_maintenance ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_095_third_party_admin_cannot_unset_maintenance ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv6 -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv6 ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_with_kernel_arg -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_with_kernel_arg ... ok -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_cd -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_cd ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_157_nodes_ports_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_157_nodes_ports_detail_get_admin ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none_bios -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none_bios ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_no_free_ports -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_no_free_ports ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_111_nodes_management_indicators_component_ind_ident_put_allow -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_111_nodes_management_indicators_component_ind_ident_put_allow ... skipped 'Not implemented yet' -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_override_pxe_fallback -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_override_pxe_fallback ... ok -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_range_retry -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_range_retry ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_with_fallback -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_with_fallback ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_017_nodes_node_ident_patch_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_017_nodes_node_ident_patch_admin ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_success -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_success ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_158_nodes_ports_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_158_nodes_ports_detail_get_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_raises_ilo_error +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_raises_ilo_error ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network ... ok +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_063_nodes_states_raid_put_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_063_nodes_states_raid_put_reader ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch_with_rpc_disabled +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch_with_rpc_disabled ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_inspection_network +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_inspection_network ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_agent_token_older_version +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_agent_token_older_version ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_109_nodes_management_indicators_component_get_allow +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.' +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_156_nodes_ports_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_156_nodes_ports_get_observer ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails ... ok +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_no_conductor_with_rpc_disabled +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_no_conductor_with_rpc_disabled ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_drops_md5 +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_drops_md5 ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_with_rpc_disabled +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_with_rpc_disabled ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_096_owner_admin_can_set_boot_device ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_096_owner_admin_can_set_boot_device ... ok -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions_empty -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions_empty ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_112_portgroups_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_112_portgroups_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch ... ok -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_does_not_exist -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_does_not_exist ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_018_nodes_node_ident_patch_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_018_nodes_node_ident_patch_member ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_newer_version +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_newer_version ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_iinfo +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_iinfo ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_110_nodes_management_indicators_component_ind_ident_get_allow +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.' +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_064_nodes_states_console_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_064_nodes_states_console_get_admin ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_157_nodes_ports_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_157_nodes_ports_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_override +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_override ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_dinfo +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_dinfo ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_tls_required +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_tls_required ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface_overriden +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface_overriden ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars ... ok API ACL Testing Path delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-6351b4a7-f5f4-4bcf-8167-79e132819472 +Openstack-Request-Id: req-2318378b-8294-458d-8ca7-0419a326eb71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-6351b4a7-f5f4-4bcf-8167-79e132819472 +Openstack-Request-Id: req-2318378b-8294-458d-8ca7-0419a326eb71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30074,14 +28719,14 @@ DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b9703733-5b2a-4347-9b3f-a6749090755c +Openstack-Request-Id: req-eae15dc6-0bc7-4e90-ab4e-06e45c1f2b88 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b9703733-5b2a-4347-9b3f-a6749090755c +Openstack-Request-Id: req-eae15dc6-0bc7-4e90-ab4e-06e45c1f2b88 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30090,14 +28735,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-db8cdf3d-54b0-4a14-b7d3-4be7b30da282 +Openstack-Request-Id: req-b3f03a97-dd4b-476a-9e1c-3d57c66595c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-db8cdf3d-54b0-4a14-b7d3-4be7b30da282 +Openstack-Request-Id: req-b3f03a97-dd4b-476a-9e1c-3d57c66595c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30106,14 +28751,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f536ef4f-83cb-482f-a9a1-24c0eb5a3cc9 +Openstack-Request-Id: req-4f3141af-6c16-46a5-b9ba-cd50f73e49b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f536ef4f-83cb-482f-a9a1-24c0eb5a3cc9 +Openstack-Request-Id: req-4f3141af-6c16-46a5-b9ba-cd50f73e49b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30122,14 +28767,14 @@ DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/maintenance GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-40e1053b-67f0-40e0-bf38-081a92d17830 +Openstack-Request-Id: req-772546d7-443b-4e7d-9199-3f20e016a5b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-40e1053b-67f0-40e0-bf38-081a92d17830 +Openstack-Request-Id: req-772546d7-443b-4e7d-9199-3f20e016a5b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30138,14 +28783,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1f66afc8-5895-4b64-ac5c-ac3323c375f6 +Openstack-Request-Id: req-9c7a865e-1ae5-441f-80ef-09a6c3b101ca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1f66afc8-5895-4b64-ac5c-ac3323c375f6 +Openstack-Request-Id: req-9c7a865e-1ae5-441f-80ef-09a6c3b101ca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30154,14 +28799,14 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-448cf5e3-095b-4b6f-b01c-23855710953a +Openstack-Request-Id: req-e5f51667-db7c-418b-8172-2ba778e06ea7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-448cf5e3-095b-4b6f-b01c-23855710953a +Openstack-Request-Id: req-e5f51667-db7c-418b-8172-2ba778e06ea7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30170,301 +28815,513 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {'boot_device': 'pxe'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-97670516-622c-4dd4-a39c-328e5dc83cc5 +Openstack-Request-Id: req-a58f03a6-8ea8-4680-8cab-4e41cd25e0f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-97670516-622c-4dd4-a39c-328e5dc83cc5 +Openstack-Request-Id: req-a58f03a6-8ea8-4680-8cab-4e41cd25e0f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {'boot_device': 'pxe'} -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_159_nodes_ports_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_159_nodes_ports_detail_get_observer ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_111_nodes_management_indicators_component_ind_ident_put_allow +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.' +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_list +ironic.tests.unit.objects.test_node.TestNodeObject.test_list ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_file_url +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_file_url ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_097_owner_manager_can_set_boot_device ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_097_owner_manager_can_set_boot_device ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_113_portgroups_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_113_portgroups_get_member ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property_bios_default -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property_bios_default ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 ... ok -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_exists -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_exists ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_cleaning -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_cleaning ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_160_portgroups_ports_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_160_portgroups_ports_get_admin ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup ... ok -GOT:Response: 200 OK +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_iinfo +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_iinfo ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields +ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_agent_token +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_agent_token ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_065_nodes_states_console_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_065_nodes_states_console_get_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_url +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_url ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_158_nodes_ports_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_158_nodes_ports_detail_get_member ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_empty_trait_present +ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_empty_trait_present ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_112_portgroups_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_112_portgroups_get_admin ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_traits +ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_traits ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_098_lessee_admin_cannot_set_boot_device +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_098_lessee_admin_cannot_set_boot_device ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas +ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_json +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_json ... ok +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-17120823-11cd-4c6f-855f-f140e78c8d22 +Openstack-Request-Id: req-1eada5ca-5f4f-4288-afb9-3bf73b7d7940 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:30:28.045717+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-17120823-11cd-4c6f-855f-f140e78c8d22 +Openstack-Request-Id: req-ba4e4119-d66a-4930-a625-544ca28a3b16 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:30:28.045717+00:00", "updated_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, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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": ["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"}]} -API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-ba4e4119-d66a-4930-a625-544ca28a3b16 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-11c1b5a7-1c89-4fdc-b3da-a9accf2fbbf9 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-11c1b5a7-1c89-4fdc-b3da-a9accf2fbbf9 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'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-704dc3ce-40c4-42b0-bf19-2f5ef651cb5a +Openstack-Request-Id: req-e607f3c0-46fa-414b-a12c-db29bfdbfc11 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-704dc3ce-40c4-42b0-bf19-2f5ef651cb5a +Openstack-Request-Id: req-e607f3c0-46fa-414b-a12c-db29bfdbfc11 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'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-44d482fe-6c61-4717-b018-626298d25622 +Openstack-Request-Id: req-146db5b9-84d8-4f42-96f3-847017c69943 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-44d482fe-6c61-4717-b018-626298d25622 +Openstack-Request-Id: req-146db5b9-84d8-4f42-96f3-847017c69943 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare ... ok -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_invalid_delete_subscription -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_invalid_delete_subscription ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_098_lessee_admin_cannot_set_boot_device -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_098_lessee_admin_cannot_set_boot_device ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_019_nodes_node_ident_patch_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_019_nodes_node_ident_patch_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_114_portgroups_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_114_portgroups_get_reader ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_invalid_console_port_range -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_invalid_console_port_range ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch ... ok -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_create_subscription -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_create_subscription ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_161_portgroups_ports_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_161_portgroups_ports_get_member ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes ... ok -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_delete_subscription -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_delete_subscription ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_115_portgroups_post_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_115_portgroups_post_admin ... ok +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'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-45c2cfef-60cb-4318-9aa7-ec8b7d85dac1 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-45c2cfef-60cb-4318-9aa7-ec8b7d85dac1 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-7f8be22f-aa27-4219-9391-39ecc11bb7e5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-7f8be22f-aa27-4219-9391-39ecc11bb7e5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-8d6c8c1b-84a9-4250-b176-f39a701ab3a7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-8d6c8c1b-84a9-4250-b176-f39a701ab3a7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-46c79bc5-dc23-4594-85eb-c089bb7e1233 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_066_nodes_states_console_put_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_066_nodes_states_console_put_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_159_nodes_ports_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_159_nodes_ports_detail_get_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh +ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_agent_verify_ca +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_agent_verify_ca ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_locked +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_locked ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance +ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_113_portgroups_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_113_portgroups_get_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_release +ironic.tests.unit.objects.test_node.TestNodeObject.test_release ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_099_lessee_manager_cannot_set_boot_device ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_099_lessee_manager_cannot_set_boot_device ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property_bios -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property_bios ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports_portgroup -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_020_nodes_node_ident_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_020_nodes_node_ident_delete_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_dev -ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_dev ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_162_portgroups_ports_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_162_portgroups_ports_get_observer ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_116_portgroups_post_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_116_portgroups_post_member ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode_fail +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode_fail ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found +ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_bios_registry_save +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_bios_registry_save ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_not_retry_with_token +ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_not_retry_with_token ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_160_portgroups_ports_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_160_portgroups_ports_get_admin ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_agent_version +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_agent_version ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve +ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_067_nodes_states_console_put_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_067_nodes_states_console_put_member ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_114_portgroups_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_114_portgroups_get_observer ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_recent_power_change +ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_recent_power_change ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found +ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_empty_bios_registry +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_empty_bios_registry ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile_boolean +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile_boolean ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_100_owner_member_cannot_set_boot_device ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_100_owner_member_cannot_set_boot_device ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios_default -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios_default ... ok -ironic.tests.unit.drivers.modules.test_image_utils.Ilo5ImageHandlerTestCase.test_ilo5_kernel_param_config -ironic.tests.unit.drivers.modules.test_image_utils.Ilo5ImageHandlerTestCase.test_ilo5_kernel_param_config ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_021_nodes_node_ident_delete_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_021_nodes_node_ident_delete_member ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_163_portgroups_ports_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_163_portgroups_ports_detail_get_admin ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default_set -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default_set ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_fast_track -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_fast_track ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_117_portgroups_post_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_117_portgroups_post_reader ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_save +ironic.tests.unit.objects.test_node.TestNodeObject.test_save ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_no_required_agent_token +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_no_required_agent_token ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_retry +ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_retry ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_161_portgroups_ports_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_161_portgroups_ports_get_member ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_exception_bios_registry +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_exception_bios_registry ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_068_nodes_states_console_put_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_068_nodes_states_console_put_reader ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state +ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_115_portgroups_post_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_115_portgroups_post_admin ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_required_agent_token +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_with_required_agent_token ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_101_lessee_member_cannot_set_boot_device ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_101_lessee_member_cannot_set_boot_device ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_capabilities -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_capabilities ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_022_nodes_node_ident_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_022_nodes_node_ident_delete_observer ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network_from_node -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network_from_node ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_no_bios_registry +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_no_bios_registry ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_timeouts +ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_timeouts ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_162_portgroups_ports_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_162_portgroups_ports_get_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_without_agent_version_anaconda +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_without_agent_version_anaconda ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group ... ok +ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image +ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full ... ok +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_069_nodes_vendor_passthru_methods_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_069_nodes_vendor_passthru_methods_get_admin ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_102_third_party_admin_cannot_set_boot_device +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_102_third_party_admin_cannot_set_boot_device ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_116_portgroups_post_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_116_portgroups_post_member ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail ... ok +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_without_version +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_without_version ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector ... ok +ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled +ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_163_portgroups_ports_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_163_portgroups_ports_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported ... ok +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits ... ok +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps ... ok +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing ... ok +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_070_nodes_vendor_passthru_methods_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_070_nodes_vendor_passthru_methods_get_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning +ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state ... ok +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_117_portgroups_post_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_117_portgroups_post_observer ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_103_owner_admin_can_get_boot_device +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_103_owner_admin_can_get_boot_device ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_164_portgroups_ports_detail_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_164_portgroups_ports_detail_get_member ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok ... ok -ACL Test GOT Response: 403 Forbidden +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps_deploy +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps_deploy ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_fail +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_fail ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties +ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties ... ok +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_driver_info_and_config +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_driver_info_and_config ... ok +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance ... ok +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported ... ok +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step ... ok +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e5b3f164-b3ed-4872-a148-10ea7dc3c429 +Openstack-Request-Id: req-d940ae2d-48b2-4f18-bacf-04f4de7b29d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/portgroups GET: /v1/portgroups {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bb3e8698-8411-4edd-a1b4-a65c460b4ff4 +Openstack-Request-Id: req-b81e1a40-4070-436d-92e9-f1b25645a744 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bb3e8698-8411-4edd-a1b4-a65c460b4ff4 +Openstack-Request-Id: req-b81e1a40-4070-436d-92e9-f1b25645a744 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]}]} API ACL Testing Path get /v1/portgroups GET: /v1/portgroups {} -GOT:Response: 200 OK +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-08a373f2-ee0c-450c-a3a5-5f1cce6596c8 +Openstack-Request-Id: req-171df0bc-97a4-4c11-8497-262e86448469 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-08a373f2-ee0c-450c-a3a5-5f1cce6596c8 +Openstack-Request-Id: req-171df0bc-97a4-4c11-8497-262e86448469 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} API ACL Testing Path get /v1/portgroups GET: /v1/portgroups {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-13dba75b-8ba9-4816-96d2-dcd047e79af5 +Openstack-Request-Id: req-f1ac7984-99f4-451a-b3f4-914a8cd86eb9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-13dba75b-8ba9-4816-96d2-dcd047e79af5 +Openstack-Request-Id: req-f1ac7984-99f4-451a-b3f4-914a8cd86eb9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30473,32 +29330,32 @@ POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/portgroups/41b783b3-52fe-4bb1-9340-12f1f245484f -Openstack-Request-Id: req-d8b3ed5f-2f0e-4387-b34a-da017a320316 +Location: http://localhost/v1/portgroups/aeb21c3b-6161-487b-a1c5-eed0e1ea88f1 +Openstack-Request-Id: req-f455de0a-5063-4209-a853-c22cd4fbb5d1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "41b783b3-52fe-4bb1-9340-12f1f245484f", "created_at": "2025-02-07T21:30:30.869457+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/41b783b3-52fe-4bb1-9340-12f1f245484f", "rel": "self"}, {"href": "http://localhost/portgroups/41b783b3-52fe-4bb1-9340-12f1f245484f", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/41b783b3-52fe-4bb1-9340-12f1f245484f/ports", "rel": "self"}, {"href": "http://localhost/portgroups/41b783b3-52fe-4bb1-9340-12f1f245484f/ports", "rel": "bookmark"}]} +{"uuid": "aeb21c3b-6161-487b-a1c5-eed0e1ea88f1", "created_at": "2024-01-06T15:34:57.349195+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/aeb21c3b-6161-487b-a1c5-eed0e1ea88f1", "rel": "self"}, {"href": "http://localhost/portgroups/aeb21c3b-6161-487b-a1c5-eed0e1ea88f1", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/aeb21c3b-6161-487b-a1c5-eed0e1ea88f1/ports", "rel": "self"}, {"href": "http://localhost/portgroups/aeb21c3b-6161-487b-a1c5-eed0e1ea88f1/ports", "rel": "bookmark"}]} ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/portgroups/41b783b3-52fe-4bb1-9340-12f1f245484f -Openstack-Request-Id: req-d8b3ed5f-2f0e-4387-b34a-da017a320316 +Location: http://localhost/v1/portgroups/aeb21c3b-6161-487b-a1c5-eed0e1ea88f1 +Openstack-Request-Id: req-f455de0a-5063-4209-a853-c22cd4fbb5d1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "41b783b3-52fe-4bb1-9340-12f1f245484f", "created_at": "2025-02-07T21:30:30.869457+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/41b783b3-52fe-4bb1-9340-12f1f245484f", "rel": "self"}, {"href": "http://localhost/portgroups/41b783b3-52fe-4bb1-9340-12f1f245484f", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/41b783b3-52fe-4bb1-9340-12f1f245484f/ports", "rel": "self"}, {"href": "http://localhost/portgroups/41b783b3-52fe-4bb1-9340-12f1f245484f/ports", "rel": "bookmark"}]} +{"uuid": "aeb21c3b-6161-487b-a1c5-eed0e1ea88f1", "created_at": "2024-01-06T15:34:57.349195+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/aeb21c3b-6161-487b-a1c5-eed0e1ea88f1", "rel": "self"}, {"href": "http://localhost/portgroups/aeb21c3b-6161-487b-a1c5-eed0e1ea88f1", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/aeb21c3b-6161-487b-a1c5-eed0e1ea88f1/ports", "rel": "self"}, {"href": "http://localhost/portgroups/aeb21c3b-6161-487b-a1c5-eed0e1ea88f1/ports", "rel": "bookmark"}]} API ACL Testing Path post /v1/portgroups POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ad219795-05e2-4016-8e29-0ffaee87aeb8 +Openstack-Request-Id: req-dae33739-be34-4044-8a9e-d4060d2528d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ad219795-05e2-4016-8e29-0ffaee87aeb8 +Openstack-Request-Id: req-dae33739-be34-4044-8a9e-d4060d2528d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30507,217 +29364,94 @@ POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a7726fce-3d65-4055-87be-9bd8be38f242 +Openstack-Request-Id: req-3ec2cbed-4125-46c2-a916-da201d085dcd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a7726fce-3d65-4055-87be-9bd8be38f242 +Openstack-Request-Id: req-3ec2cbed-4125-46c2-a916-da201d085dcd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_secure_boot -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_secure_boot ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_118_portgroups_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_118_portgroups_detail_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_102_third_party_admin_cannot_set_boot_device -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_102_third_party_admin_cannot_set_boot_device ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console ... ok -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi -ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_boot_clean_up_failed -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_boot_clean_up_failed ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_023_nodes_validate_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_023_nodes_validate_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot ... ok +API ACL Testing Path get /v1/portgroups/detail +GET: /v1/portgroups/detail {} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_071_nodes_vendor_passthru_methods_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_071_nodes_vendor_passthru_methods_get_reader ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy ... ok +ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args +ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_118_portgroups_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_118_portgroups_detail_get_admin ... ok +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_165_portgroups_ports_detail_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_165_portgroups_ports_detail_get_observer ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_get_node_network_data -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_get_node_network_data ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_119_portgroups_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_119_portgroups_detail_get_member ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_localboot -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_localboot ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error_managed -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error_managed ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_103_owner_admin_can_get_boot_device -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_103_owner_admin_can_get_boot_device ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_024_nodes_validate_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_024_nodes_validate_get_member ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error_managed_no_power_off -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error_managed_no_power_off ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_166_volume_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_166_volume_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_no_manage_agent_boot -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_no_manage_agent_boot ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_network_clean_up_failed -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_network_clean_up_failed ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_120_portgroups_detail_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_120_portgroups_detail_get_reader ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_image -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_image ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_025_nodes_validate_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_025_nodes_validate_get_observer ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_104_owner_manager_can_get_boot_device ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_104_owner_manager_can_get_boot_device ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_167_volume_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_167_volume_get_member ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_localboot_ppc64 -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_localboot_ppc64 ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed_no_power_off -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed_no_power_off ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good ... ok -API ACL Testing Path get /v1/portgroups/detail -GET: /v1/portgroups/detail {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-49d7ba3c-607f-46bb-8b47-9e02713af0b5 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:33.762967+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-49d7ba3c-607f-46bb-8b47-9e02713af0b5 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:33.762967+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/portgroups/detail -GET: /v1/portgroups/detail {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-45df1d98-e1c5-43c3-9d57-c396e583df31 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:34.316116+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-45df1d98-e1c5-43c3-9d57-c396e583df31 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:34.316116+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/portgroups/detail -GET: /v1/portgroups/detail {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-8c2c557d-b427-4e33-9f4b-64541df7caf4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:34.916538+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-8c2c557d-b427-4e33-9f4b-64541df7caf4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:34.916538+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-da24fafa-9dbd-48e5-834b-2886784130a6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:35.584775+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_storage_should_write_image_with_smartnic -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_storage_should_write_image_with_smartnic ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_121_portgroups_portgroup_ident_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_121_portgroups_portgroup_ident_get_admin ... ok +ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args +ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args ... ok +ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_cd +ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_cd ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc ... ok +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_running +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_running ... ok +ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only +ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation ... ok +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc ... ok +ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl +ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok ... ok +ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_disk +ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_disk ... ok +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_version_mismatch +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_version_mismatch ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_166_volume_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_166_volume_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_072_nodes_vendor_passthru_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_072_nodes_vendor_passthru_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_119_portgroups_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_119_portgroups_detail_get_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c0afbcd2-487f-43ee-b784-d21559118d2a +Openstack-Request-Id: req-420b895b-6dd2-4f58-8742-88a9a1e98c9e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c0afbcd2-487f-43ee-b784-d21559118d2a +Openstack-Request-Id: req-420b895b-6dd2-4f58-8742-88a9a1e98c9e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30726,14 +29460,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device {'boot_device': 'pxe'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-be39af6b-4cb4-475d-a5f9-9d8c2363916f +Openstack-Request-Id: req-a53b3756-f12f-4147-9986-a68b46b61a10 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-be39af6b-4cb4-475d-a5f9-9d8c2363916f +Openstack-Request-Id: req-a53b3756-f12f-4147-9986-a68b46b61a10 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30742,14 +29476,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device {'boot_device': 'pxe'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-87e6ec58-3331-4c7a-971b-ebeaeba05d15 +Openstack-Request-Id: req-596ec0e1-5eaf-4edf-8cc3-144572b4b807 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-87e6ec58-3331-4c7a-971b-ebeaeba05d15 +Openstack-Request-Id: req-596ec0e1-5eaf-4edf-8cc3-144572b4b807 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30758,14 +29492,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {'boot_device': 'pxe'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7ca342f2-05f6-4d53-9bc5-c0794a534214 +Openstack-Request-Id: req-5146daa2-f059-4462-b0c5-338b10442f4a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7ca342f2-05f6-4d53-9bc5-c0794a534214 +Openstack-Request-Id: req-5146daa2-f059-4462-b0c5-338b10442f4a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30774,14 +29508,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device {'boot_device': 'pxe'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4d48e1ed-5534-4861-9a4f-7fd5126a2370 +Openstack-Request-Id: req-5d7764fb-6f08-4f88-a9ff-55a6df59ebfc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4d48e1ed-5534-4861-9a4f-7fd5126a2370 +Openstack-Request-Id: req-5d7764fb-6f08-4f88-a9ff-55a6df59ebfc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30790,14 +29524,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {'boot_device': 'pxe'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-21a9a7e6-e2e0-4166-b137-ecc6787777c7 +Openstack-Request-Id: req-8119427a-1bfb-4845-b9ce-8ec7a90a1d43 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-21a9a7e6-e2e0-4166-b137-ecc6787777c7 +Openstack-Request-Id: req-8119427a-1bfb-4845-b9ce-8ec7a90a1d43 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30806,14 +29540,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-dcf8a8d0-9133-476b-bad5-6c3ce52f2182 +Openstack-Request-Id: req-686f1b8b-d2ce-4c21-9ef6-c1c4a4915fc2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-dcf8a8d0-9133-476b-bad5-6c3ce52f2182 +Openstack-Request-Id: req-686f1b8b-d2ce-4c21-9ef6-c1c4a4915fc2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30822,31 +29556,91 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-43ad881f-dd0b-4fd8-80ba-ae960711abe2 +Openstack-Request-Id: req-c11f638a-65b0-4f2e-a458-659bd9c59f06 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-43ad881f-dd0b-4fd8-80ba-ae960711abe2 +Openstack-Request-Id: req-c11f638a-65b0-4f2e-a458-659bd9c59f06 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device {} +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_105_lessee_admin_cannot_get_boot_device ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_105_lessee_admin_cannot_get_boot_device ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed_no_power_off_on_fast_track -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed_no_power_off_on_fast_track ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_026_nodes_maintenance_put_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_026_nodes_maintenance_put_admin ... ok +ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties +ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties ... ok +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list ... ok +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_deploy_step +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_deploy_step ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_floppy +ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_floppy ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id ... ok +ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method +ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_no_override +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_no_override ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_167_volume_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_167_volume_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_120_portgroups_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_120_portgroups_detail_get_observer ... ok +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_073_nodes_vendor_passthru_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_073_nodes_vendor_passthru_get_member ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none ... ok +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_106_owner_member_cannot_get_boot_device +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_106_owner_member_cannot_get_boot_device ... ok +ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods +ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods ... ok +ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_persistent +ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_persistent ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_disable +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_disable ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError ... ok +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step_not_found +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step_not_found ... ok +ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce +ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce ... ok +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-84ac0602-7acd-4d97-8f52-8192b7d2c7d7 +Openstack-Request-Id: req-ef9995c6-94a1-4f49-aa88-04dbf5630fbd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30855,7 +29649,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f49d0bb9-0e24-47ac-98d2-3b2107878b97 +Openstack-Request-Id: req-5b71879c-1155-44c3-83ff-1e634039ede7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30864,7 +29658,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-649eeb6c-a9d3-4540-afa8-a32ba7034cc2 +Openstack-Request-Id: req-b267bccc-d2c2-4a21-a5c7-28600bc3678a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30873,7 +29667,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-82a06e0a-d39d-49bd-8e50-620716c88524 +Openstack-Request-Id: req-b4f49b51-d9aa-4641-b0b8-0db9af8d815c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30882,7 +29676,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-14c16c07-98a2-4adc-869a-faa807469fac +Openstack-Request-Id: req-fe46a6e2-6f25-4991-8e2d-8dea9bd8cd0c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30891,7 +29685,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-802cf4a7-d029-479d-accb-a870006578df +Openstack-Request-Id: req-ce2b6244-d968-493e-afc6-445d7dc403a3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30900,7 +29694,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-000ef5d8-e9dd-418e-831e-2a1f4685cf2d +Openstack-Request-Id: req-84230688-04d9-4965-a8f9-cac23746e12d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30909,7 +29703,7 @@ GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3618c3e3-726f-44ed-96df-a39386ff0df8 +Openstack-Request-Id: req-5f6b281a-84bf-438f-81ef-ab94206e5523 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30918,7 +29712,7 @@ GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-aad405e7-633a-4ed4-b9c6-1aae0858eac2 +Openstack-Request-Id: req-216b7a85-bc2b-4181-ae38-2883922493c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30927,7 +29721,7 @@ GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7a4c493f-9f1f-49f9-b58a-9d681cc28917 +Openstack-Request-Id: req-7f907830-774c-4bd7-8ec2-975a7e9c8547 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30936,7 +29730,7 @@ GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a35d30b8-36ad-4ec3-bad0-29cf1b3cd36c +Openstack-Request-Id: req-ae26ac98-50a0-435c-97f0-ed92cec82d60 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30945,7 +29739,7 @@ GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e92f1c7a-1b1f-4419-b137-b17edef16384 +Openstack-Request-Id: req-def10630-be89-4919-a20d-814307848a5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30954,7 +29748,7 @@ GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1fc8c031-85c1-4668-81c0-8906e30b577a +Openstack-Request-Id: req-54abd372-6981-4f53-b0e7-d01c67af5919 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30963,7 +29757,7 @@ GET: /v1/volume {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cc0360d7-b4ff-4648-8c32-9b4d1ea18f75 +Openstack-Request-Id: req-d96d2287-e293-457f-9085-c003afe85388 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -30972,490 +29766,543 @@ GET: /v1/volume {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d22359bf-d82c-431d-bacc-2ec773252ea7 +Openstack-Request-Id: req-97c1452c-1e85-4a59-bc8f-25d6ac39ca27 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} API ACL Testing Path get /v1/volume GET: /v1/volume {} -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficient_data +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficient_data ... ok +ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test_validate_correct_vendor +ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test_validate_correct_vendor ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_fail +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_fail ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_168_volume_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_168_volume_get_observer ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_broken_fast_track -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_broken_fast_track ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_rescue -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_rescue ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort ... ok +ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values +ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_121_portgroups_portgroup_ident_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_121_portgroups_portgroup_ident_get_admin ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save ... ok +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps ... ok +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-46c79bc5-dc23-4594-85eb-c089bb7e1233 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-536c010c-b7d7-4ea8-a1f2-0326e35e6ca0 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-536c010c-b7d7-4ea8-a1f2-0326e35e6ca0 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5bbc9483-2f0c-44e2-87a0-66653ff06f2a +Openstack-Request-Id: req-e3bd2882-487b-4302-a165-d5f014088b91 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5bbc9483-2f0c-44e2-87a0-66653ff06f2a +Openstack-Request-Id: req-e3bd2882-487b-4302-a165-d5f014088b91 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-90bcceee-dbb5-4532-a024-3e5926c13cd9 +Openstack-Request-Id: req-0a6cddec-4d37-4625-90fa-5d4774f69f9c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-90bcceee-dbb5-4532-a024-3e5926c13cd9 +Openstack-Request-Id: req-0a6cddec-4d37-4625-90fa-5d4774f69f9c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 404 Not Found +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-93378761-eb02-43ae-9dcb-72cbb046e185 +Openstack-Request-Id: req-24fad40e-efde-4c3e-bcc0-e270a4ebe451 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-93378761-eb02-43ae-9dcb-72cbb046e185 +Openstack-Request-Id: req-24fad40e-efde-4c3e-bcc0-e270a4ebe451 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fe81a29f-2370-4a9b-ae46-f59e9d361e94 +Openstack-Request-Id: req-f2b80738-2e85-4900-9849-eb9024d67c0d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fe81a29f-2370-4a9b-ae46-f59e9d361e94 +Openstack-Request-Id: req-f2b80738-2e85-4900-9849-eb9024d67c0d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-4bd347be-01bf-4536-bb94-6ef08fb1dfe1 +Openstack-Request-Id: req-9122ec57-088c-46f5-8cb4-16092b4e5db6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-4bd347be-01bf-4536-bb94-6ef08fb1dfe1 +Openstack-Request-Id: req-9122ec57-088c-46f5-8cb4-16092b4e5db6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} -GOT:Response: 404 Not Found +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-55c6df23-8a26-46f1-a2a1-0979b09f2a1b +Openstack-Request-Id: req-2854cc7c-f66c-42e9-9bdd-e1a6191091c4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-55c6df23-8a26-46f1-a2a1-0979b09f2a1b +Openstack-Request-Id: req-2854cc7c-f66c-42e9-9bdd-e1a6191091c4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7ade6db5-914b-45e1-88af-1bd03b2e7c31 +Openstack-Request-Id: req-c84390ec-aa7f-481c-939d-eb1b5344984a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_074_nodes_vendor_passthru_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_074_nodes_vendor_passthru_get_reader ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_2_disk_and_raid_level_1 +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_2_disk_and_raid_level_1 ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_107_lessee_member_cannot_get_boot_device +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_107_lessee_member_cannot_get_boot_device ... ok +ironic.tests.unit.objects.test_objects.TestMisc.test_max_version +ironic.tests.unit.objects.test_objects.TestMisc.test_max_version ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh ... ok +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_ok ... ok +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T15:33:35.161598+00:00', 'updated_at': None, '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'}}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': '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 {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52-54-00-cf-2d-31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7ade6db5-914b-45e1-88af-1bd03b2e7c31 +Openstack-Request-Id: req-3e9ce006-e767-4399-99a8-bf63bc2faf14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: 52-54-00-cf-2d-31\", \"debuginfo\": null}"} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-e7c708ec-a565-4db7-bd98-427035a8919b +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-543d5bb0-4792-4af2-a63b-5dade4380285 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-e7c708ec-a565-4db7-bd98-427035a8919b +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:35.993780+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 204 No Content +Openstack-Request-Id: req-118ef63c-1bc5-4b5e-aa33-6522b9178f35 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None + +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4c30fac7-b649-4fbd-82b7-976b6699deb3 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-d7ca44b2-caed-4e5a-9a14-c72301cb93de X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_122_portgroups_portgroup_ident_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_122_portgroups_portgroup_ident_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_106_owner_member_cannot_get_boot_device -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_106_owner_member_cannot_get_boot_device ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_027_nodes_maintenance_put_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_027_nodes_maintenance_put_member ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_169_volume_connectors_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_169_volume_connectors_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_deploy -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_deploy ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_107_lessee_member_cannot_get_boot_device -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_107_lessee_member_cannot_get_boot_device ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_end -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_end ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_123_portgroups_portgroup_ident_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_123_portgroups_portgroup_ident_get_reader ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection_exc -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection_exc ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_028_nodes_maintenance_put_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_028_nodes_maintenance_put_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_170_volume_connectors_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_170_volume_connectors_get_member ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance -ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_valid_console_port_range -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_valid_console_port_range ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_error -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_error ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_108_owner_reader_cannot_get_boot_device -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_108_owner_reader_cannot_get_boot_device ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_not_retry_with_token -ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_not_retry_with_token ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_124_portgroups_portgroup_ident_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_124_portgroups_portgroup_ident_patch_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_029_nodes_maintenance_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_029_nodes_maintenance_delete_admin ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_file_image -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_file_image ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_171_volume_connectors_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_171_volume_connectors_get_observer ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_start -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_start ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_recent_power_change -ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_recent_power_change ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_109_lessee_reader_cannot_get_boot_device -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_109_lessee_reader_cannot_get_boot_device ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_retry -ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_retry ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_030_nodes_maintenance_delete_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_030_nodes_maintenance_delete_member ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_172_volume_connectors_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_172_volume_connectors_post_admin ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_drops_md5 -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_drops_md5 ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_125_portgroups_portgroup_ident_patch_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_125_portgroups_portgroup_ident_patch_member ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state -ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_110_third_party_admin_cannot_get_boot_device -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_110_third_party_admin_cannot_get_boot_device ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_notstaged -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_notstaged ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_active -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_active ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_swift_fails -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_swift_fails ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_timeouts -ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_timeouts ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_031_nodes_maintenance_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_031_nodes_maintenance_delete_observer ... ok -ACL Test GOT Response: 200 OK +{"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}"} +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-da24fafa-9dbd-48e5-834b-2886784130a6 +Openstack-Request-Id: req-e63aa865-e984-4fa3-99ed-cc8cc3e0d502 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:35.584775+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_10 +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_10 ... ok +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps_only_oob +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps_only_oob ... ok +ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one +ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a99d5536-1f03-4f41-ac19-630d82d471eb +Openstack-Request-Id: req-89f993cd-2694-4d1c-bb68-22b5c2b18a9e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:36.252578+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:34:58.780858+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a99d5536-1f03-4f41-ac19-630d82d471eb +Openstack-Request-Id: req-89f993cd-2694-4d1c-bb68-22b5c2b18a9e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:36.252578+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:34:58.780858+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/portgroups/detail +GET: /v1/portgroups/detail {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-3c35fa45-e29f-47f3-be4f-1570f5ed04cc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-3c35fa45-e29f-47f3-be4f-1570f5ed04cc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/detail +GET: /v1/portgroups/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6641189b-6403-416a-9ab3-9fcdab29cd91 +Openstack-Request-Id: req-53268a0c-4d15-4e82-bdb7-f1e37d8fc7a4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:36.905704+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:00.455019+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6641189b-6403-416a-9ab3-9fcdab29cd91 +Openstack-Request-Id: req-53268a0c-4d15-4e82-bdb7-f1e37d8fc7a4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:36.905704+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} -API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 503 Service Unavailable +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:00.455019+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a5afd37d-8ea3-42e8-99bd-1b1c2fec86b6 +Openstack-Request-Id: req-234eed39-4a12-4544-9c3d-c3fc889ca207 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:01.025787+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a5afd37d-8ea3-42e8-99bd-1b1c2fec86b6 +Openstack-Request-Id: req-234eed39-4a12-4544-9c3d-c3fc889ca207 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 503 Service Unavailable +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:01.025787+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4cc7c479-054d-4c76-adfb-ea5e0904805f +Openstack-Request-Id: req-cdad0db8-6589-4ae3-b927-18479234782f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 ... ok +ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two +ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two ... ok +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_169_volume_connectors_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_169_volume_connectors_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_122_portgroups_portgroup_ident_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_122_portgroups_portgroup_ident_get_member ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4cc7c479-054d-4c76-adfb-ea5e0904805f +Openstack-Request-Id: req-47f70a0d-16fe-47c4-a000-d0f7d53291b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 403 Forbidden +{"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.80"}, "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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8cc754d8-e23f-4d60-9b55-3756d73872e3 +Openstack-Request-Id: req-47f70a0d-16fe-47c4-a000-d0f7d53291b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_173_volume_connectors_post_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_173_volume_connectors_post_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_126_portgroups_portgroup_ident_patch_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_126_portgroups_portgroup_ident_patch_reader ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_dinfo -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_dinfo ... ok -ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat -ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_file -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_file ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning -ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_http -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_http ... ok -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash ... ok +{"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.80"}, "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"}]} +API ACL Testing Path get /v1.xml +GET: /v1.xml {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_custom_interface +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_custom_interface ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_075_nodes_vendor_passthru_post_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_075_nodes_vendor_passthru_post_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_invalid_raid_level +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_invalid_raid_level ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_108_owner_reader_cannot_get_boot_device +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_108_owner_reader_cannot_get_boot_device ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps ... ok +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all ... ok +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_missing_steps +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_missing_steps ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_123_portgroups_portgroup_ident_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_123_portgroups_portgroup_ident_get_observer ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_disable_ramdisk +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_disable_ramdisk ... ok +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_false +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_false ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_170_volume_connectors_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_170_volume_connectors_get_member ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_root_only +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_root_only ... ok +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_076_nodes_vendor_passthru_post_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_076_nodes_vendor_passthru_post_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_109_lessee_reader_cannot_get_boot_device +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_109_lessee_reader_cannot_get_boot_device ... ok +ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification +ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_true +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_true ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue ... ok +ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets +ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets ... ok +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities_none +ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities_none ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_all_steps +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_all_steps ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_ilo_error +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_ilo_error ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_124_portgroups_portgroup_ident_patch_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_124_portgroups_portgroup_ident_patch_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_171_volume_connectors_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_171_volume_connectors_get_observer ... ok +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_pending_delete +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_pending_delete ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_110_third_party_admin_cannot_get_boot_device +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_110_third_party_admin_cannot_get_boot_device ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_077_nodes_vendor_passthru_post_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_077_nodes_vendor_passthru_post_reader ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_not_supported +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_not_supported ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_with_more_than_min_disks_for_raid_level +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_with_more_than_min_disks_for_raid_level ... ok +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_only_enabled +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_only_enabled ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_scheme_http +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_scheme_http ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_125_portgroups_portgroup_ident_patch_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_125_portgroups_portgroup_ident_patch_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_172_volume_connectors_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_172_volume_connectors_post_admin ... ok +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_fail +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__validate_volume_size_requested_less_than_actual_size +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__validate_volume_size_requested_less_than_actual_size ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_111_owner_admin_can_get_supported_boot_devices ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_111_owner_admin_can_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_iinfo -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_iinfo ... ok -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_invalid -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_invalid ... ok -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_032_nodes_management_boot_device_put_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_032_nodes_management_boot_device_put_admin ... ok -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_174_volume_connectors_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_174_volume_connectors_post_observer ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_swift -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_swift ... ok -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_file_image_no_checksum -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_file_image_no_checksum ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_127_portgroups_portgroup_ident_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_127_portgroups_portgroup_ident_delete_admin ... ok -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_get_swift_temp_url -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_get_swift_temp_url ... ok -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_smartnic_port -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_smartnic_port ... ok -ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods -ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods ... ok -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_078_nodes_vendor_passthru_put_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_078_nodes_vendor_passthru_put_admin ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia ... ok +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_off +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_off ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__validate_volume_size_requested_more_than_actual_size +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__validate_volume_size_requested_more_than_actual_size ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_requires_ramdisk +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_requires_ramdisk ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_126_portgroups_portgroup_ident_patch_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_126_portgroups_portgroup_ident_patch_observer ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__volume_usage_per_disk_mb +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__volume_usage_per_disk_mb ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_173_volume_connectors_post_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_173_volume_connectors_post_member ... ok +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_ok +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_ok ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_079_nodes_vendor_passthru_put_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_079_nodes_vendor_passthru_put_member ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_112_owner_manager_can_get_supported_boot_devices ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_112_owner_manager_can_get_supported_boot_devices ... ok -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http ... ok -ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device -ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_033_nodes_management_boot_device_put_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_033_nodes_management_boot_device_put_member ... ok -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_175_volume_volume_connector_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_175_volume_volume_connector_id_get_admin ... ok -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_execute_clean_step -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_execute_clean_step ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_128_portgroups_portgroup_ident_delete_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_128_portgroups_portgroup_ident_delete_member ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_image_type -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_image_type ... ok -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata ... ok -ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object -ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile_fails -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile_fails ... ok +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img ... ok +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual +ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_127_portgroups_portgroup_ident_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_127_portgroups_portgroup_ident_delete_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_174_volume_connectors_post_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_174_volume_connectors_post_observer ... ok +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test_execute_verify_step +ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test_execute_verify_step ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_080_nodes_vendor_passthru_put_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_080_nodes_vendor_passthru_put_reader ... ok GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4a8475f6-5225-424d-ac25-7bdb2a827883 +Openstack-Request-Id: req-7da301c5-e95f-4f79-8a96-8410a59694e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4a8475f6-5225-424d-ac25-7bdb2a827883 +Openstack-Request-Id: req-7da301c5-e95f-4f79-8a96-8410a59694e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -31464,14 +30311,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-59847763-1932-4a2b-a741-5af756ae5ccc +Openstack-Request-Id: req-254d1803-2a29-47e9-9a02-01f771a609fb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-59847763-1932-4a2b-a741-5af756ae5ccc +Openstack-Request-Id: req-254d1803-2a29-47e9-9a02-01f771a609fb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -31480,14 +30327,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-785c2d56-258d-4897-9017-c17d64e32046 +Openstack-Request-Id: req-4db6cdb0-311d-4303-9d6a-5013d9840b80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-785c2d56-258d-4897-9017-c17d64e32046 +Openstack-Request-Id: req-4db6cdb0-311d-4303-9d6a-5013d9840b80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -31496,14 +30343,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6bffb8f7-239a-4023-8a49-ae4bb09f35a2 +Openstack-Request-Id: req-1ee115b3-26d4-4cb4-bcc8-50860dfe6c82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6bffb8f7-239a-4023-8a49-ae4bb09f35a2 +Openstack-Request-Id: req-1ee115b3-26d4-4cb4-bcc8-50860dfe6c82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -31512,14 +30359,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b9b50db8-428c-4322-857b-809d02f5d22b +Openstack-Request-Id: req-a25aaef9-cb34-47b8-9909-560937e9fbe7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b9b50db8-428c-4322-857b-809d02f5d22b +Openstack-Request-Id: req-a25aaef9-cb34-47b8-9909-560937e9fbe7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -31528,14 +30375,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9934a03e-63bb-4462-b6b8-18b7e10b84ff +Openstack-Request-Id: req-5f460a98-dc19-466c-b6ca-5f82560d4df0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9934a03e-63bb-4462-b6b8-18b7e10b84ff +Openstack-Request-Id: req-5f460a98-dc19-466c-b6ca-5f82560d4df0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -31544,14 +30391,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device/supported {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-46c06c1e-1f12-4603-9779-1934344b5234 +Openstack-Request-Id: req-2cd97d7b-4b5c-473a-bf36-87e68362d5e7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-46c06c1e-1f12-4603-9779-1934344b5234 +Openstack-Request-Id: req-2cd97d7b-4b5c-473a-bf36-87e68362d5e7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -31560,500 +30407,505 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device/supported {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d81daeaf-2f54-4f70-8305-59bd160528be +Openstack-Request-Id: req-9e37e489-3079-4cc1-b3d5-b01e1a987659 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d81daeaf-2f54-4f70-8305-59bd160528be +Openstack-Request-Id: req-9e37e489-3079-4cc1-b3d5-b01e1a987659 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device/supported GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device/supported {} -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps ... ok -ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad -ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_local_external -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_local_external ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_113_owner_member_cannot_get_supported_boot_devices ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_113_owner_member_cannot_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel ... ok -ironic.tests.unit.drivers.test_ibmc.IBMCHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_ibmc.IBMCHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_034_nodes_management_boot_device_put_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_034_nodes_management_boot_device_put_observer ... ok -ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old -ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_176_volume_volume_connector_id_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_176_volume_volume_connector_id_get_member ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_swift -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_swift ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties -ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_129_portgroups_portgroup_ident_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_129_portgroups_portgroup_ident_delete_reader ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_deploy_steps -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_deploy_steps ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_as_dict -ironic.tests.unit.objects.test_objects.TestObject.test_as_dict ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object -ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk ... ok -ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method -ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers_fail +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers_fail ... ok +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_without_params +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_without_params ... ok +ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported +ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_128_portgroups_portgroup_ident_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_128_portgroups_portgroup_ident_delete_member ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_175_volume_volume_connector_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_175_volume_volume_connector_id_get_admin ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal ... ok +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_config_false +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_config_false ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode ... ok +ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid +ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_114_lessee_admin_cannot_get_supported_boot_devices ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_114_lessee_admin_cannot_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_missing -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_missing ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints_iinfo -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints_iinfo ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_081_nodes_vendor_passthru_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_081_nodes_vendor_passthru_delete_admin ... ok +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ... ok ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4c30fac7-b649-4fbd-82b7-976b6699deb3 +Openstack-Request-Id: req-cdad0db8-6589-4ae3-b927-18479234782f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3a9901af-35fc-432a-8f5d-c950c9332d0a +Openstack-Request-Id: req-dde8499c-4ca5-4526-af73-1ceaf519c91f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:02.191130+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3a9901af-35fc-432a-8f5d-c950c9332d0a +Openstack-Request-Id: req-dde8499c-4ca5-4526-af73-1ceaf519c91f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:02.191130+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} +API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-91b11a03-1f52-4a6c-9b41-1493ebcb09f9 +Openstack-Request-Id: req-82d94b88-2085-44db-bb53-7c2bb784db2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-91b11a03-1f52-4a6c-9b41-1493ebcb09f9 +Openstack-Request-Id: req-82d94b88-2085-44db-bb53-7c2bb784db2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1e32a9bc-61bc-4150-94d2-a69ab3f0c0f8 +Openstack-Request-Id: req-9a5dacfc-45b0-4bdb-8955-5404a17129ab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1e32a9bc-61bc-4150-94d2-a69ab3f0c0f8 +Openstack-Request-Id: req-9a5dacfc-45b0-4bdb-8955-5404a17129ab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0fafa414-1bcf-42f4-8239-bbf08e63cb36 +Openstack-Request-Id: req-50fc5cda-45d4-4a6f-8097-6f9dc00066ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0fafa414-1bcf-42f4-8239-bbf08e63cb36 +Openstack-Request-Id: req-50fc5cda-45d4-4a6f-8097-6f9dc00066ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f4cb2186-c8ef-40d4-9cae-ac4c24327724 +Openstack-Request-Id: req-6eb0a515-7fa5-43e5-ad24-0a4680a88414 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f4cb2186-c8ef-40d4-9cae-ac4c24327724 +Openstack-Request-Id: req-6eb0a515-7fa5-43e5-ad24-0a4680a88414 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-57d724ea-ff4b-42bd-b6a6-8fdec6d79517 +Openstack-Request-Id: req-88f4786e-a681-434c-9324-4354e6a19508 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-57d724ea-ff4b-42bd-b6a6-8fdec6d79517 +Openstack-Request-Id: req-88f4786e-a681-434c-9324-4354e6a19508 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-49742b27-bb4e-4a56-94ed-470065fa74ce +Openstack-Request-Id: req-81476515-a289-4c45-b639-9c545c3a2610 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_129_portgroups_portgroup_ident_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_129_portgroups_portgroup_ident_delete_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_176_volume_volume_connector_id_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_176_volume_volume_connector_id_get_member ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master ... ok +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info_string +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info_string ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file ... ok ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-49742b27-bb4e-4a56-94ed-470065fa74ce +Openstack-Request-Id: req-c84390ec-aa7f-481c-939d-eb1b5344984a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-15c769c2-0199-4b46-8141-5a74b5762f2e +Openstack-Request-Id: req-c9f5c1ac-0c3e-4188-91b0-2ba37573b0b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_177_volume_volume_connector_id_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_177_volume_volume_connector_id_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_035_nodes_management_boot_device_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_035_nodes_management_boot_device_get_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_not_string -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_not_string ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list -ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list ... ok -ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods -ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_130_nodes_portgroups_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_130_nodes_portgroups_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_not_list -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_not_list ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat -ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_active -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_active ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_115_lessee_manager_cannot_get_supported_boot_devices -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_115_lessee_manager_cannot_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_source_not_known -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_source_not_known ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes -ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum_os_algo -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum_os_algo ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_178_volume_volume_connector_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_178_volume_volume_connector_id_patch_admin ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_036_nodes_management_boot_device_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_036_nodes_management_boot_device_get_member ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_unknown_key -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_unknown_key ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 -ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_131_nodes_portgroups_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_131_nodes_portgroups_get_member ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_algo -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_algo ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_missing -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_missing ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 -ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_116_third_party_admin_cannot_get_supported_boot_devices -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_116_third_party_admin_cannot_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_not_string -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_not_string ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 -ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 ... ok -/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_checksum -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_checksum ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_179_volume_volume_connector_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_179_volume_volume_connector_id_patch_member ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 -ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_wait_not_int -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_wait_not_int ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_037_nodes_management_boot_device_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_037_nodes_management_boot_device_get_observer ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_instance_ramdisk -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_instance_ramdisk ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive -ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_132_nodes_portgroups_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_132_nodes_portgroups_get_reader ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_image_hash -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_image_hash ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_contains -ironic.tests.unit.objects.test_objects.TestObject.test_contains ... ok -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_mismatch -ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_mismatch ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_180_volume_volume_connector_id_patch_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_180_volume_volume_connector_id_patch_observer ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_unrescuing -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_unrescuing ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_117_owner_admin_can_send_non_masking_interrupt -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_117_owner_admin_can_send_non_masking_interrupt ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_active -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_active ... ok -ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps -ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored ... ok -ACL Test GOT Response: 403 Forbidden +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-8cc754d8-e23f-4d60-9b55-3756d73872e3 +Openstack-Request-Id: req-c9f5c1ac-0c3e-4188-91b0-2ba37573b0b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fcc88b7e-14a2-4eea-8a96-0e4490660e0d +Openstack-Request-Id: req-c0cb7fc2-e053-48cd-80fe-152ba52f5d74 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fcc88b7e-14a2-4eea-8a96-0e4490660e0d +Openstack-Request-Id: req-c0cb7fc2-e053-48cd-80fe-152ba52f5d74 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-054427f4-1005-412c-a3e4-8f4dae8543c1 +Openstack-Request-Id: req-2df10cad-2c24-4584-90bd-21c5a53524b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-054427f4-1005-412c-a3e4-8f4dae8543c1 +Openstack-Request-Id: req-2df10cad-2c24-4584-90bd-21c5a53524b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f614ae03-852e-4f0c-89bc-b790a598a2cf +Openstack-Request-Id: req-896fea53-212d-472f-906c-b677d56a34aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f614ae03-852e-4f0c-89bc-b790a598a2cf +Openstack-Request-Id: req-896fea53-212d-472f-906c-b677d56a34aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2849ed6d-8fbd-4a4c-97ed-415521a65d68 +Openstack-Request-Id: req-46e90f39-2357-4045-88e2-62b455a94d9a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2849ed6d-8fbd-4a4c-97ed-415521a65d68 +Openstack-Request-Id: req-46e90f39-2357-4045-88e2-62b455a94d9a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b3a9659a-9273-4514-968a-e70c0e7819ec +Openstack-Request-Id: req-c298e88b-7fd0-4c00-ab13-7a7f2154ad03 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b3a9659a-9273-4514-968a-e70c0e7819ec +Openstack-Request-Id: req-c298e88b-7fd0-4c00-ab13-7a7f2154ad03 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +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-21841a37-676b-4921-b645-233fd7541f22 +Openstack-Request-Id: req-f759af6e-91ff-46d8-8592-9bd3ed3182dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-21841a37-676b-4921-b645-233fd7541f22 +Openstack-Request-Id: req-f759af6e-91ff-46d8-8592-9bd3ed3182dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_133_nodes_portgroups_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_133_nodes_portgroups_detail_get_admin ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_tear_down_cleaning -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_tear_down_cleaning ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep ... ok -ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_busy -ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_busy ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_181_volume_volume_connector_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_181_volume_volume_connector_id_delete_admin ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_image_source_is_url -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_image_source_is_url ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_deploy -ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_deploy ... ok +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-41a10037-4563-411f-9b47-f559965a4848 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_082_nodes_vendor_passthru_delete_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_082_nodes_vendor_passthru_delete_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_115_lessee_manager_cannot_get_supported_boot_devices +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_115_lessee_manager_cannot_get_supported_boot_devices ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware ... ok +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_130_nodes_portgroups_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_130_nodes_portgroups_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_177_volume_volume_connector_id_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_177_volume_volume_connector_id_get_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to ... ok +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_083_nodes_vendor_passthru_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_083_nodes_vendor_passthru_delete_reader ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_116_third_party_admin_cannot_get_supported_boot_devices +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_116_third_party_admin_cannot_get_supported_boot_devices ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_131_nodes_portgroups_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_131_nodes_portgroups_get_member ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_178_volume_volume_connector_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_178_volume_volume_connector_id_patch_admin ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image ... ok +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_deploy +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_deploy ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_117_owner_admin_can_send_non_masking_interrupt +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_117_owner_admin_can_send_non_masking_interrupt ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_179_volume_volume_connector_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_179_volume_volume_connector_id_patch_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_084_nodes_traits_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_084_nodes_traits_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_132_nodes_portgroups_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_132_nodes_portgroups_get_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload ... ok +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_powered_after_heartbeat +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_powered_after_heartbeat ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_end +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_end ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state ... ok +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_180_volume_volume_connector_id_patch_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_180_volume_volume_connector_id_patch_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_085_nodes_traits_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_085_nodes_traits_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_118_owner_manager_can_send_non_masking_interrupt ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_118_owner_manager_can_send_non_masking_interrupt ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection_no_inspection_ramdisk -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection_no_inspection_ramdisk ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_dehydration -ironic.tests.unit.objects.test_objects.TestObject.test_dehydration ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_134_nodes_portgroups_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_134_nodes_portgroups_detail_get_member ... ok -ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_interface -ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_interface ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db -ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_partition_image -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_partition_image ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_calls_boot_validate -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_calls_boot_validate ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_133_nodes_portgroups_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_133_nodes_portgroups_detail_get_admin ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift ... ok +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info_string +ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info_string ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_redfish_properties +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_redfish_properties ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_error +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_error ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync ... ok +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_invalid_param +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_invalid_param ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_181_volume_volume_connector_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_181_volume_volume_connector_id_delete_admin ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_start +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_start ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_086_nodes_traits_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_086_nodes_traits_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_119_lessee_admin_cannot_send_non_masking_interrupt +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_119_lessee_admin_cannot_send_non_masking_interrupt ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_134_nodes_portgroups_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_134_nodes_portgroups_detail_get_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_no_param +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_no_param ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state ... ok +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_after_reboot +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_after_reboot ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states ... ok GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0171dd21-5948-4b5f-bcb1-7c0c0fe69d5e +Openstack-Request-Id: req-72797501-15a5-43b4-a594-61266c1b8dfa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32062,7 +30914,7 @@ GET: /v1/volume/connectors {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a6688b6d-dad6-447e-abea-3de99673874e +Openstack-Request-Id: req-a4f325eb-0ad7-4a6e-b4db-bfde84c8d068 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32071,7 +30923,7 @@ GET: /v1/volume/connectors {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c262f8b7-05dc-484a-85c1-0f3a7e58ff45 +Openstack-Request-Id: req-4e5134d6-e996-4d99-b024-185bfdd562c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32080,7 +30932,7 @@ GET: /v1/volume/connectors {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e1157569-c971-414d-b1e6-fae935725e4a +Openstack-Request-Id: req-f34fb5c2-2f39-4a5e-97a6-02581afe19b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32089,7 +30941,7 @@ POST: /v1/volume/connectors {'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-36f966d5-35d6-4d58-a440-42dd62ad9092 +Openstack-Request-Id: req-95f30199-2bf3-497a-96da-8ce2dc751ac8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32098,7 +30950,7 @@ POST: /v1/volume/connectors {'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-1184a037-2412-4248-9b2d-4a93bd93748a +Openstack-Request-Id: req-624ee449-85b9-4495-9b04-6231cadffb65 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32107,7 +30959,7 @@ POST: /v1/volume/connectors {'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-25eec5b2-9c14-40b4-80f2-7ee06057ce84 +Openstack-Request-Id: req-c4b5f6d1-8660-41b1-bf93-a5475b34e64a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32116,7 +30968,7 @@ GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e85f7ba7-62ca-4642-961a-0369de3e7c72 +Openstack-Request-Id: req-29d43844-3c34-4dfe-ab94-5d4cc4e5cde6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32125,7 +30977,7 @@ GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-81ecc144-eed6-4a16-8e6a-11bbfdd64007 +Openstack-Request-Id: req-bb7ba1cf-2a31-4f83-879c-5dce89dde9d2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32134,7 +30986,7 @@ GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-804ccf2a-8233-4048-be90-a9567a5f059e +Openstack-Request-Id: req-a87388a1-8b17-48a4-81f2-3a185500d024 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32143,7 +30995,7 @@ PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1565d061-8727-4e5e-a834-16c08989b0ea +Openstack-Request-Id: req-abdd8996-6350-4efe-ab45-55e78c919217 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32152,7 +31004,7 @@ PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-27757e6d-8c6c-4f61-b5bc-bd0a3777fa15 +Openstack-Request-Id: req-95a8513c-2aab-4142-8012-bc53cc027a2c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32161,7 +31013,7 @@ PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-644f98b1-102b-4e82-817e-aa1c90aba851 +Openstack-Request-Id: req-cbbb8c07-b6d9-4975-99ef-4773519e2d83 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32170,133 +31022,178 @@ DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d1110a54-282e-4fc4-8b39-14d51d83baab +Openstack-Request-Id: req-91a3c2ba-1379-4562-aeb7-8627d8eb8461 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_182_volume_volume_connector_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_182_volume_volume_connector_id_delete_member ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade -ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart_bios -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart_bios ... ok -ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_steps -ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_steps ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_render_configdrive -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_render_configdrive ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_no_image_source_for_local_boot -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_no_image_source_for_local_boot ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_119_lessee_admin_cannot_send_non_masking_interrupt -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_119_lessee_admin_cannot_send_non_masking_interrupt ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned -ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_interface_mismatch -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_interface_mismatch ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_135_nodes_portgroups_detail_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_135_nodes_portgroups_detail_get_reader ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_get -ironic.tests.unit.objects.test_objects.TestObject.test_get ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_no_proxy_without_proxies -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_no_proxy_without_proxies ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_agent_client -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_agent_client ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_get_changes -ironic.tests.unit.objects.test_objects.TestObject.test_get_changes ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_183_volume_volume_connector_id_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_183_volume_volume_connector_id_delete_observer ... ok -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_with_boot_iso -ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_with_boot_iso ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_proxies -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_proxies ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned -ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned ... ok -GOT:Response: 204 No Content -Openstack-Request-Id: req-60e03449-5986-47ea-ba5c-5cf5033bb5b3 +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare ... ok +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_automated_clean_version_mismatch +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_automated_clean_version_mismatch ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation ... ok +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-81476515-a289-4c45-b639-9c545c3a2610 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 - -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-659c26fb-2ee9-4fac-a2b4-429850d07b58 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-659c26fb-2ee9-4fac-a2b4-429850d07b58 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 400 Bad Request +Openstack-Request-Id: req-790cf193-aac6-4104-8cfc-88ab853c413e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-91136611-40f4-409e-b1fd-a276652dcd5f +Openstack-Request-Id: req-790cf193-aac6-4104-8cfc-88ab853c413e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 409 Conflict +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a16b5b75-6416-44f2-9b71-77c240959185 +Openstack-Request-Id: req-7690630e-f5a0-44cf-8625-0305ddc77844 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} +{"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"}]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-7690630e-f5a0-44cf-8625-0305ddc77844 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-8c04a99e-5246-4714-91a7-ae0b17b14ea0 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:07.999782+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-8c04a99e-5246-4714-91a7-ae0b17b14ea0 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:07.999782+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-d8cbb6c4-4532-470e-83c5-989d0fc411d1 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-d8cbb6c4-4532-470e-83c5-989d0fc411d1 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_182_volume_volume_connector_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_182_volume_volume_connector_id_delete_member ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_135_nodes_portgroups_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_135_nodes_portgroups_detail_get_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_120_lessee_manager_cannot_send_non_masking_interrupt ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_120_lessee_manager_cannot_send_non_masking_interrupt ... ok -ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args -ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions -ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_136_ports_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_136_ports_get_admin ... ok -ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args -ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy_conflict -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy_conflict ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin -ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_184_volume_targets_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_184_volume_targets_get_admin ... ok -ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only -ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_okay_error_typeerror_embedded -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_okay_error_typeerror_embedded ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_087_nodes_traits_put_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_087_nodes_traits_put_admin ... ok +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_clean_version_mismatch_fail +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_clean_version_mismatch_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_active +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_active ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout ... ok +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_fail +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_183_volume_volume_connector_id_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_183_volume_volume_connector_id_delete_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_136_ports_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_136_ports_get_admin ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_pregenerated_token +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_pregenerated_token ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url ... ok +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_manual_clean_version_mismatch +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_manual_clean_version_mismatch ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout ... ok +ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc +ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning +ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_088_nodes_traits_put_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_088_nodes_traits_put_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict ... ok +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_no_step_running +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_no_step_running ... ok GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d4a6883f-b1c6-4c33-b13d-4c30ebb1db09 +Openstack-Request-Id: req-d6f2904a-0200-44d4-863f-9e6e74d6e508 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d4a6883f-b1c6-4c33-b13d-4c30ebb1db09 +Openstack-Request-Id: req-d6f2904a-0200-44d4-863f-9e6e74d6e508 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32305,14 +31202,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device/supported {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b2923b45-1530-4900-88d3-9d5eecf3ca47 +Openstack-Request-Id: req-615a1d32-a533-4344-ab46-852caf888824 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b2923b45-1530-4900-88d3-9d5eecf3ca47 +Openstack-Request-Id: req-615a1d32-a533-4344-ab46-852caf888824 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32321,14 +31218,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/boot_device/supported {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d909a2bf-be37-4951-abd2-474e986af624 +Openstack-Request-Id: req-f084f896-c9b3-4dfb-96c2-d053fe945728 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d909a2bf-be37-4951-abd2-474e986af624 +Openstack-Request-Id: req-f084f896-c9b3-4dfb-96c2-d053fe945728 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32337,14 +31234,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/boot_device/supported {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c7ae0933-2a54-4bb7-8315-ee344aa87ec3 +Openstack-Request-Id: req-ab1a6884-d3f0-4a10-924e-e441eeb6af1d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c7ae0933-2a54-4bb7-8315-ee344aa87ec3 +Openstack-Request-Id: req-ab1a6884-d3f0-4a10-924e-e441eeb6af1d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32353,14 +31250,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/inject_nmi {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-13dd0a14-0045-4e2d-9ec6-c2e04d703259 +Openstack-Request-Id: req-bf0cd0ba-256f-4fb7-a2f6-890ad0b406d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-13dd0a14-0045-4e2d-9ec6-c2e04d703259 +Openstack-Request-Id: req-bf0cd0ba-256f-4fb7-a2f6-890ad0b406d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32369,14 +31266,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/inject_nmi {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-fe9edbf3-a0f9-4396-8c4d-48370aca6563 +Openstack-Request-Id: req-95dc7caf-48e5-4640-8693-d51d0dfe2eab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-fe9edbf3-a0f9-4396-8c4d-48370aca6563 +Openstack-Request-Id: req-95dc7caf-48e5-4640-8693-d51d0dfe2eab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32385,14 +31282,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/inject_nmi {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e6c4824c-4123-4060-8045-65f8b224b635 +Openstack-Request-Id: req-3d0acbb1-7866-4afa-8ecf-4a92d651103a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e6c4824c-4123-4060-8045-65f8b224b635 +Openstack-Request-Id: req-3d0acbb1-7866-4afa-8ecf-4a92d651103a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32401,430 +31298,402 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/inject_nmi {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1f0f5ae7-c14f-4267-9c92-d17397dd9a09 +Openstack-Request-Id: req-61f163cb-ca45-4508-9eb6-072349fc3374 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1f0f5ae7-c14f-4267-9c92-d17397dd9a09 +Openstack-Request-Id: req-61f163cb-ca45-4508-9eb6-072349fc3374 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} -ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned -ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_121_third_party_admin_cannot_send_non_masking_interrupt ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_121_third_party_admin_cannot_send_non_masking_interrupt ... ok -ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly -ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect ... ok -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-edc7aa51-3f1d-4aa8-953b-793e2a738b0d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:56.958483+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -ACL Test GOT Response: 200 OK +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_184_volume_targets_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_184_volume_targets_get_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_137_ports_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_137_ports_get_member ... ok +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_old_command +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_old_command ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_gpu_capabilities +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_gpu_capabilities ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_089_nodes_traits_put_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_089_nodes_traits_put_reader ... ok +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_reboot +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_reboot ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_185_volume_targets_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_185_volume_targets_get_member ... ok +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +/usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details + warnings.warn("%s is an invalid UUID. Using UUIDFields " +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_122_owner_reader_get_states +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_122_owner_reader_get_states ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_138_ports_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_138_ports_get_observer ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk ... ok +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_running +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_running ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_090_nodes_traits_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_090_nodes_traits_delete_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail ... ok +ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration +ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach ... ok +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_unknown +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_unknown ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_139_ports_post_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_139_ports_post_admin ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_123_lessee_reader_get_states +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_123_lessee_reader_get_states ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_186_volume_targets_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_186_volume_targets_get_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation ... ok +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot ... ok +ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed +ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format ... ok +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook_fails +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook_fails ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty ... ok +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-edc7aa51-3f1d-4aa8-953b-793e2a738b0d +Openstack-Request-Id: req-41a10037-4563-411f-9b47-f559965a4848 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:56.958483+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-39f162e7-7e47-44ee-9879-5982bcdc29dc +Openstack-Request-Id: req-53d531f5-54f5-4efd-9b13-40be82557e26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:59.986631+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-39f162e7-7e47-44ee-9879-5982bcdc29dc +Openstack-Request-Id: req-53d531f5-54f5-4efd-9b13-40be82557e26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:30:59.986631+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6bae7074-b5e2-41de-be5d-e6ff20aee0de +Openstack-Request-Id: req-2f240551-acb4-4629-bfb6-a50d50ead99e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:31:03.004896+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +{"traits": ["trait1"]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6bae7074-b5e2-41de-be5d-e6ff20aee0de +Openstack-Request-Id: req-2f240551-acb4-4629-bfb6-a50d50ead99e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:31:03.004896+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/ports -GET: /v1/ports {} +{"traits": ["trait1"]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c9659989-5b8c-4691-99c5-21b106026129 +Openstack-Request-Id: req-6ecb151c-8e9a-4257-a402-74c77a99033a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} +{"traits": ["trait1"]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c9659989-5b8c-4691-99c5-21b106026129 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/ports -GET: /v1/ports {} -ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad -ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_137_ports_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_137_ports_get_member ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_is_running -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_is_running ... ok -ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly -ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_042_nodes_management_inject_nmi_put_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_042_nodes_management_inject_nmi_put_member ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj -ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso_and_image_source -ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso_and_image_source ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_not_running -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_not_running ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_185_volume_targets_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_185_volume_targets_get_member ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_get_updates -ironic.tests.unit.objects.test_objects.TestObject.test_get_updates ... ok -ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args -ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_122_owner_reader_get_states -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_122_owner_reader_get_states ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_no_command_running -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_no_command_running ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_hydration -ironic.tests.unit.objects.test_objects.TestObject.test_hydration ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_138_ports_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_138_ports_get_reader ... ok -ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo -ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_wrong_command_running -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_wrong_command_running ... ok -ACL Test GOT Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-15c769c2-0199-4b46-8141-5a74b5762f2e +Openstack-Request-Id: req-6ecb151c-8e9a-4257-a402-74c77a99033a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} -GOT:Response: 404 Not Found +{"traits": ["trait1"]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-91ed0acd-8458-4ff2-a244-76c044da42e2 +Openstack-Request-Id: req-e8ede32d-769e-4523-ac3b-51cbe896c142 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"traits": ["trait1"]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-91ed0acd-8458-4ff2-a244-76c044da42e2 +Openstack-Request-Id: req-e8ede32d-769e-4523-ac3b-51cbe896c142 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +{"traits": ["trait1"]} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-4f789ada-e872-4afb-8f83-b28599ee8df2 +Openstack-Request-Id: req-84812a7c-0bf3-42dd-bbf0-7653c54dde93 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-4f789ada-e872-4afb-8f83-b28599ee8df2 +Openstack-Request-Id: req-84812a7c-0bf3-42dd-bbf0-7653c54dde93 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-db2b9ab7-8472-4c12-b583-8a8f79bbdc4d +Openstack-Request-Id: req-c999a144-2fc0-4a7f-a5d9-71252f24001b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-db2b9ab7-8472-4c12-b583-8a8f79bbdc4d +Openstack-Request-Id: req-c999a144-2fc0-4a7f-a5d9-71252f24001b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} -GOT:Response: 404 Not Found +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3320bfeb-11ec-4b9b-91c0-c800e3447219 +Openstack-Request-Id: req-a5fcee4d-afa8-4b87-b396-8299b83cbea4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3320bfeb-11ec-4b9b-91c0-c800e3447219 +Openstack-Request-Id: req-a5fcee4d-afa8-4b87-b396-8299b83cbea4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7607c6ac-0f9f-4706-84fa-cb273e90ac79 +Openstack-Request-Id: req-ee662966-55cd-45d7-8837-802dbfb0a410 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7607c6ac-0f9f-4706-84fa-cb273e90ac79 +Openstack-Request-Id: req-ee662966-55cd-45d7-8837-802dbfb0a410 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-587246f7-e522-4432-b471-31c53087aa4c +Openstack-Request-Id: req-f15b84e6-153c-422e-8b27-9b42d9b63f78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_124_third_part_admin_cannot_get_states +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_124_third_part_admin_cannot_get_states ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_091_nodes_traits_delete_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_091_nodes_traits_delete_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_187_volume_targets_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_187_volume_targets_post_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_140_ports_post_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_140_ports_post_member ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_source_path +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_source_path ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict ... ok +ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings +ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file ... ok +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_manual_cleaning +ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_manual_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_141_ports_post_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_141_ports_post_observer ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_092_nodes_traits_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_092_nodes_traits_delete_reader ... ok +ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed +ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_188_volume_targets_post_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_188_volume_targets_post_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_125_owner_admin_can_put_power_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_125_owner_admin_can_put_power_state_change ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok ... ok +ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset +ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_agent_client +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_agent_client ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_active +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_active ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-587246f7-e522-4432-b471-31c53087aa4c +Openstack-Request-Id: req-e24a24fe-5cef-416d-9956-8d6f1522337f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} -GOT:Response: 404 Not Found +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:09.518736+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9276b46f-5217-4572-9a81-0e1e1632cee1 +Openstack-Request-Id: req-e24a24fe-5cef-416d-9956-8d6f1522337f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:09.518736+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/ports +GET: /v1/ports {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9276b46f-5217-4572-9a81-0e1e1632cee1 +Openstack-Request-Id: req-5759d044-0999-49a6-89ff-0d919e4de871 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} -GOT:Response: 403 Forbidden +{"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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-61e22ed4-59c1-42ae-b494-9fe9892be21a +Openstack-Request-Id: req-5759d044-0999-49a6-89ff-0d919e4de871 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_bios -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_bios ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns -ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer ... ok -ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority -ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_186_volume_targets_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_186_volume_targets_get_observer ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error -ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error ... ok -ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only -ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_123_lessee_reader_get_states -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_123_lessee_reader_get_states ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_qcow2 -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_qcow2 ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_load -ironic.tests.unit.objects.test_objects.TestObject.test_load ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_139_ports_post_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_139_ports_post_admin ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base -ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_044_nodes_states_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_044_nodes_states_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_raw -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_raw ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive -ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_187_volume_targets_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_187_volume_targets_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_124_third_part_admin_cannot_get_states -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_124_third_part_admin_cannot_get_states ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set -ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor -ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_140_ports_post_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_140_ports_post_member ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_http_image -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_http_image ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_045_nodes_states_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_045_nodes_states_get_member ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields -ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_188_volume_targets_post_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_188_volume_targets_post_member ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance -ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_125_owner_admin_can_put_power_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_125_owner_admin_can_put_power_state_change ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source2 -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source2 ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_object_property -ironic.tests.unit.objects.test_objects.TestObject.test_object_property ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_141_ports_post_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_141_ports_post_reader ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_046_nodes_states_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_046_nodes_states_get_observer ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error -ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_189_volume_targets_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_189_volume_targets_post_observer ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_file -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_file ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object -ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_http -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_http ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object -ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_126_owner_manager_can_put_power_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_126_owner_manager_can_put_power_state_change ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_config -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_config ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_142_ports_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_142_ports_detail_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_via_node -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_via_node ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_static_result -ironic.tests.unit.objects.test_objects.TestObject.test_static_result ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_047_nodes_states_power_put_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_047_nodes_states_power_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_190_volume_volume_target_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_190_volume_volume_target_id_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_supports_version -ironic.tests.unit.objects.test_objects.TestObject.test_supports_version ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable_in_driver_info -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable_in_driver_info ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_indicator_state -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_indicator_state ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue_bios -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue_bios ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_agent_token_required -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_agent_token_required ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype -ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_internal -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_internal ... ok -GOT:Response: 200 OK +{"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"}]}]} +API ACL Testing Path get /v1/ports +GET: /v1/ports {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5a5eb695-a8a4-4339-95cc-453a116418b5 +Openstack-Request-Id: req-c1922270-d525-43aa-9cad-7a9d2eddf3a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5a5eb695-a8a4-4339-95cc-453a116418b5 +Openstack-Request-Id: req-c1922270-d525-43aa-9cad-7a9d2eddf3a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} API ACL Testing Path get /v1/ports GET: /v1/ports {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-129668c7-22a0-4663-ba0d-7094f43d6680 +Openstack-Request-Id: req-8710c801-8f76-447a-9753-d68e83f3137e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-129668c7-22a0-4663-ba0d-7094f43d6680 +Openstack-Request-Id: req-8710c801-8f76-447a-9753-d68e83f3137e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32833,30 +31702,30 @@ POST: /v1/ports {'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-356197e2-e17b-47a6-84d5-1c3036d4f0ba +Openstack-Request-Id: req-ff79b4a8-651a-4553-b35e-9f0565527c16 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-356197e2-e17b-47a6-84d5-1c3036d4f0ba +Openstack-Request-Id: req-ff79b4a8-651a-4553-b35e-9f0565527c16 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '22e26c0b-03f2-4d2e-ae87-c02d7f33c000', 'address': '03:04:05:06:07:08'} +POST: /v1/ports {'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-5b0a5afd-3269-497c-9d59-39ee0680d34c +Openstack-Request-Id: req-977582bf-15a5-4323-bbc8-13dd6e7a9030 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5b0a5afd-3269-497c-9d59-39ee0680d34c +Openstack-Request-Id: req-977582bf-15a5-4323-bbc8-13dd6e7a9030 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -32865,175 +31734,152 @@ POST: /v1/ports {'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-58f26663-5af0-4516-99ae-ae3a5920ce0d +Openstack-Request-Id: req-2ecf5a2b-5bd5-4432-8a55-65b1deaa744b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-58f26663-5af0-4516-99ae-ae3a5920ce0d +Openstack-Request-Id: req-2ecf5a2b-5bd5-4432-8a55-65b1deaa744b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} API ACL Testing Path get /v1/ports/detail GET: /v1/ports/detail {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-fc0678f3-e1d4-4940-b6ac-d8a3416af096 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:31:22.604914+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-fc0678f3-e1d4-4940-b6ac-d8a3416af096 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:31:22.604914+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} -API ACL Testing Path get /v1/ports/detail -GET: /v1/ports/detail {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-6fbe59ec-f250-41bf-9207-8d7850d5c4a8 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:31:24.305999+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_143_ports_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_143_ports_detail_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_142_ports_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_142_ports_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate +ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_189_volume_targets_post_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_189_volume_targets_post_observer ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_093_nodes_traits_trait_put_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_093_nodes_traits_trait_put_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_126_owner_manager_can_put_power_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_126_owner_manager_can_put_power_state_change ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy_conflict +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy_conflict ... ok +ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect +ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_okay_error_typeerror_embedded +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_okay_error_typeerror_embedded ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect ... ok +ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty +ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_190_volume_volume_target_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_190_volume_volume_target_id_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_143_ports_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_143_ports_detail_get_member ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_is_running +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_is_running ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_094_nodes_traits_trait_put_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_094_nodes_traits_trait_put_member ... ok +ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error +ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_not_running +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_not_running ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_127_lessee_admin_can_put_power_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_127_lessee_admin_can_put_power_state_change ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_updates -ironic.tests.unit.objects.test_objects.TestObject.test_updates ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_invalid_file -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_invalid_file ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_048_nodes_states_power_put_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_048_nodes_states_power_put_member ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart_bios +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart_bios ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_no_command_running +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_no_command_running ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht ... ok +ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input +ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_wrong_command_running +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_wrong_command_running ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_191_volume_volume_target_id_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_191_volume_volume_target_id_get_member ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context -ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context ... ok -POST: /v1/volume/targets {'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\": \"\"}"} -POST: /v1/volume/targets {'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-f3715240-8317-4580-9070-1da0a82613ca -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 123 is not of type 'string'\", \"debuginfo\": null}"} -POST: /v1/volume/targets {'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-ef15af17-65f8-40eb-bd91-8ce5020a7c3c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'node_uuid' is a required property\", \"debuginfo\": null}"} -POST: /v1/volume/targets {'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-75799c4e-b917-4538-9068-149c2b99ef98 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'volume_type' is a required property\", \"debuginfo\": null}"} -POST: /v1/volume/targets {'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-6203b0a7-d4b7-4690-b9ff-fb2ecb321304 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'boot_index' is a required property\", \"debuginfo\": null}"} -POST: /v1/volume/targets {'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-bc0b8119-8237-4bd0-b2cd-5ab544a03271 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"} -POST: /v1/volume/targets {'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-f3e326e5-a650-44dc-ac9c-848346c5f921 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:18.192354+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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2025-02-07T21:28:18.192354+00:00', 'updated_at': None, 'boot_index': 0, 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, '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'} -POST: /v1/volume/targets {'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-894a22c5-869a-4b14-accf-85e9292a12d6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:28:18.323843+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: / {} -GOT:{'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.80'}, 'versions': [{'id': 'v1', 'links': [{'href': 'http://spam.ham/eggs/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}]} -GET: / {} -GOT:{'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.80'}, 'versions': [{'id': 'v1', 'links': [{'href': 'https://mycloud.com/ironic/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}]} -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url ... ok -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_144_ports_detail_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_144_ports_detail_get_reader ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_from_node +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_from_node ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_095_nodes_traits_trait_put_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_095_nodes_traits_trait_put_reader ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 ... ok +ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket +ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_128_lessee_manager_can_put_power_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_128_lessee_manager_can_put_power_state_change ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_192_volume_volume_target_id_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_192_volume_volume_target_id_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_049_nodes_states_power_put_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_049_nodes_states_power_put_observer ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ... ok -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_144_ports_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_144_ports_detail_get_observer ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_create_port_when_its_state_is_none +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_create_port_when_its_state_is_none ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6abe1407-ed92-45dc-95e2-94a438c1ace9 +Openstack-Request-Id: req-7294bc95-c028-4c82-9ff3-675c7aa59bba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6abe1407-ed92-45dc-95e2-94a438c1ace9 +Openstack-Request-Id: req-7294bc95-c028-4c82-9ff3-675c7aa59bba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33042,14 +31888,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-116cf565-1897-4a0b-a3a1-a307b5b1ee21 +Openstack-Request-Id: req-25c8e6c9-c9e6-4521-a9c4-a593fc7eabb8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-116cf565-1897-4a0b-a3a1-a307b5b1ee21 +Openstack-Request-Id: req-25c8e6c9-c9e6-4521-a9c4-a593fc7eabb8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33058,14 +31904,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-61e2e5a9-101c-43c5-96b2-c1dc402e68b0 +Openstack-Request-Id: req-4f875a41-13d1-415c-92c8-a079d50010a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-61e2e5a9-101c-43c5-96b2-c1dc402e68b0 +Openstack-Request-Id: req-4f875a41-13d1-415c-92c8-a079d50010a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33074,14 +31920,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-cc75fce4-6a2c-48ea-8c5e-fd9b5723456c +Openstack-Request-Id: req-21cf06b3-c3ff-4ae4-a056-df8a51fa530f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-cc75fce4-6a2c-48ea-8c5e-fd9b5723456c +Openstack-Request-Id: req-21cf06b3-c3ff-4ae4-a056-df8a51fa530f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33090,14 +31936,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power {'target': 'power on'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-3eada1f3-2e85-4699-b314-c00c90445b37 +Openstack-Request-Id: req-0c3dd36b-172d-4eac-9cb8-65e87ccd7c8c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-3eada1f3-2e85-4699-b314-c00c90445b37 +Openstack-Request-Id: req-0c3dd36b-172d-4eac-9cb8-65e87ccd7c8c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33106,14 +31952,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power {'target': 'power on'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cf4e2a3a-8bd7-48d3-aec0-aa40ff88c8f6 +Openstack-Request-Id: req-dcf92579-9416-410e-907a-93283ff83d80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cf4e2a3a-8bd7-48d3-aec0-aa40ff88c8f6 +Openstack-Request-Id: req-dcf92579-9416-410e-907a-93283ff83d80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33122,14 +31968,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power {'target': 'power on'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-61ed0d94-3137-4e6d-8c7b-20af39a86318 +Openstack-Request-Id: req-5287fa63-6364-4187-ba4d-1600e10376be X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-61ed0d94-3137-4e6d-8c7b-20af39a86318 +Openstack-Request-Id: req-5287fa63-6364-4187-ba4d-1600e10376be X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33138,291 +31984,366 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power {'target': 'power on'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-61d35b33-8c03-435e-b0bd-24a2a277cf86 +Openstack-Request-Id: req-678fbf8d-ccda-44ca-ae18-be4dcf5d71ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-61d35b33-8c03-435e-b0bd-24a2a277cf86 +Openstack-Request-Id: req-678fbf8d-ccda-44ca-ae18-be4dcf5d71ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state_unknown -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state_unknown ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_145_ports_port_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_145_ports_port_id_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_193_volume_volume_target_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_193_volume_volume_target_id_patch_admin ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_096_nodes_traits_trait_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_096_nodes_traits_trait_delete_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_145_ports_port_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_145_ports_port_id_get_admin ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_192_volume_volume_target_id_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_192_volume_volume_target_id_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_129_owner_member_can_put_power_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_129_owner_member_can_put_power_state_change ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_050_nodes_states_boot_mode_put_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_050_nodes_states_boot_mode_put_admin ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ... ok -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback_restricted -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback_restricted ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_146_ports_port_id_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_146_ports_port_id_get_member ... ok -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_another_state -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_another_state ... ok -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-61e22ed4-59c1-42ae-b494-9fe9892be21a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_pxe_port_macs +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_pxe_port_macs ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_097_nodes_traits_trait_delete_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_097_nodes_traits_trait_delete_member ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_146_ports_port_id_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_146_ports_port_id_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_193_volume_volume_target_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_193_volume_volume_target_id_patch_admin ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_130_lessee_member_can_put_power_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_130_lessee_member_can_put_power_state_change ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_bios +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_bios ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_098_nodes_traits_trait_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_098_nodes_traits_trait_delete_reader ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_194_volume_volume_target_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_194_volume_volume_target_id_patch_member ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a79cdb16-1696-4046-801b-087c45947a1f +Openstack-Request-Id: req-21af62fa-77c9-4a0d-86df-63779370116f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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} +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:12.998566+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a79cdb16-1696-4046-801b-087c45947a1f +Openstack-Request-Id: req-21af62fa-77c9-4a0d-86df-63779370116f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} -GOT:Response: 404 Not Found +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:12.998566+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +API ACL Testing Path get /v1/ports/detail +GET: /v1/ports/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ad8aa2d8-f6e7-4862-99ea-032fda9e6bd4 +Openstack-Request-Id: req-f22b22ae-1863-4624-91f3-6eed522a1938 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ad8aa2d8-f6e7-4862-99ea-032fda9e6bd4 +Openstack-Request-Id: req-f22b22ae-1863-4624-91f3-6eed522a1938 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/ports/detail +GET: /v1/ports/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8abb3044-55f7-48b0-b86c-4a2d080babf6 +Openstack-Request-Id: req-10e20689-db3c-4bc8-8e7b-1060e529b92e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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} +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:14.041275+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8abb3044-55f7-48b0-b86c-4a2d080babf6 +Openstack-Request-Id: req-10e20689-db3c-4bc8-8e7b-1060e529b92e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} -GOT:Response: 503 Service Unavailable +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:14.041275+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f003ed3e-0e45-4ef6-b62e-ed8f323104d0 +Openstack-Request-Id: req-5956d421-4e5b-4019-820d-81305bb2dcf0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:14.409799+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f003ed3e-0e45-4ef6-b62e-ed8f323104d0 +Openstack-Request-Id: req-5956d421-4e5b-4019-820d-81305bb2dcf0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:14.409799+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-dcfc192e-207e-4de0-aafc-d161c90eda19 +Openstack-Request-Id: req-932df903-dacb-4b3c-a6b0-47f786dcb179 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-dcfc192e-207e-4de0-aafc-d161c90eda19 +Openstack-Request-Id: req-932df903-dacb-4b3c-a6b0-47f786dcb179 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_147_ports_port_id_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_147_ports_port_id_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_131_owner_reader_cannot_put_power_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_131_owner_reader_cannot_put_power_state_change ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces ... ok +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire ... ok +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-f15b84e6-153c-422e-8b27-9b42d9b63f78 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7204d152-627b-46c8-9c8c-bfca4331822a +Openstack-Request-Id: req-38cbe4e9-8ab3-4281-8389-4061320248d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7204d152-627b-46c8-9c8c-bfca4331822a +Openstack-Request-Id: req-38cbe4e9-8ab3-4281-8389-4061320248d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f8bf66f4-5192-4e6a-a95e-a12b31312d48 +Openstack-Request-Id: req-0e62855c-7bbb-4495-8b47-9a286a4bdff6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f8bf66f4-5192-4e6a-a95e-a12b31312d48 +Openstack-Request-Id: req-0e62855c-7bbb-4495-8b47-9a286a4bdff6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_194_volume_volume_target_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_194_volume_volume_target_id_patch_member ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_indicator_state_good -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_indicator_state_good ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_051_nodes_states_boot_mode_put_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_051_nodes_states_boot_mode_put_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_130_lessee_member_can_put_power_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_130_lessee_member_can_put_power_state_change ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status ... ok -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_into_instance -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_into_instance ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate ... ok -ACL Test GOT Response: 200 OK +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-6fbe59ec-f250-41bf-9207-8d7850d5c4a8 +Openstack-Request-Id: req-11e2eead-2cca-4a1b-a915-2ccfe00e4dff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:31:24.305999+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} -API ACL Testing Path get /v1/ports/detail -GET: /v1/ports/detail {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-fac550f9-47c2-4856-8356-78cb920d1c0b +Openstack-Request-Id: req-11e2eead-2cca-4a1b-a915-2ccfe00e4dff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:31:25.035387+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fac550f9-47c2-4856-8356-78cb920d1c0b +Openstack-Request-Id: req-062cd0f1-ae41-4f48-9ebd-f4280dfd493c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:31:25.035387+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} -API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-74056cbd-1ccf-48bf-a42f-b5613ab41ba5 +Openstack-Request-Id: req-062cd0f1-ae41-4f48-9ebd-f4280dfd493c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:31:27.597324+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-74056cbd-1ccf-48bf-a42f-b5613ab41ba5 +Openstack-Request-Id: req-2139c115-03b1-4e95-9527-8558ba9ebf7d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:31:27.597324+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c8ad2171-d37a-4db7-902b-fb9dbf60b58f +Openstack-Request-Id: req-2139c115-03b1-4e95-9527-8558ba9ebf7d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:31:31.803561+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c8ad2171-d37a-4db7-902b-fb9dbf60b58f +Openstack-Request-Id: req-f6a41088-e0a7-4f1f-90a2-6f5008638f52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:31:31.803561+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-3a7567d0-8551-4df9-a23d-df517629f856 +Openstack-Request-Id: req-f6a41088-e0a7-4f1f-90a2-6f5008638f52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:31:35.417236+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_no_retries -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_no_retries ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_147_ports_port_id_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_147_ports_port_id_get_reader ... ok -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_timeout -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_timeout ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_retries -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_retries ... ok +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-48f577b1-7929-43c6-bfd2-6976e9386143 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-48f577b1-7929-43c6-bfd2-6976e9386143 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-b6ed2c8f-e3f9-487a-958d-c00a81c9b178 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_099_nodes_vifs_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_099_nodes_vifs_get_admin ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_195_volume_volume_target_id_patch_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_195_volume_volume_target_id_patch_observer ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_052_nodes_states_boot_mode_put_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_052_nodes_states_boot_mode_put_observer ... ok -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_131_owner_reader_cannot_put_power_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_131_owner_reader_cannot_put_power_state_change ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_verify -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_verify ... ok -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader ... ok -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_no_fast_track -ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_no_fast_track ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader_with_prep -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader_with_prep ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_148_ports_port_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_148_ports_port_id_patch_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate ... ok +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_132_lessee_reader_cannot_put_power_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_132_lessee_reader_cannot_put_power_state_change ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_148_ports_port_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_148_ports_port_id_patch_admin ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override ... ok +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f32a6db5-4678-4fe3-a25a-13be9cfaaf4b +Openstack-Request-Id: req-f0b603d0-8749-486a-89e3-359bd4971983 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33431,7 +32352,7 @@ DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-547cc93c-89f8-4902-b5ae-a3d5dff9bfb3 +Openstack-Request-Id: req-7c37f43d-ca50-4223-a85d-99696325a002 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33440,7 +32361,7 @@ GET: /v1/volume/targets {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-14c5b319-fd26-431f-9744-a4ab6d92be53 +Openstack-Request-Id: req-b906c63f-2f95-4176-b252-966dd24f1135 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33449,7 +32370,7 @@ GET: /v1/volume/targets {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6f38aa40-894c-4335-a39c-1a91c9695878 +Openstack-Request-Id: req-e55d8da8-986d-45ad-b22b-6909ed3848a1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33458,7 +32379,7 @@ GET: /v1/volume/targets {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5d313955-cab0-4e92-bc00-324e2b50f449 +Openstack-Request-Id: req-ce2cafae-93aa-40ea-9e8c-176553eceeaf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33467,7 +32388,7 @@ POST: /v1/volume/targets {'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-f0051718-a984-42d5-86ae-c90e129ff845 +Openstack-Request-Id: req-82f6cf22-0626-4457-aac9-7a01b028d2dd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33476,7 +32397,7 @@ POST: /v1/volume/targets {'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-8f918c6d-c659-480f-a1f2-cc0df6e1472f +Openstack-Request-Id: req-c4189eea-30db-4afc-b1f3-c80831078c82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33485,7 +32406,7 @@ POST: /v1/volume/targets {'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-2bec0089-d5cc-4c3b-9cd4-75789da27a68 +Openstack-Request-Id: req-eaf346ed-ad33-4cd0-a6a6-5f9e83ad764d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33494,7 +32415,7 @@ GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-177a8a7e-cb98-4438-9a9b-cc88de459fe6 +Openstack-Request-Id: req-ae3550a8-0894-4519-9d9e-74456c50beff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33503,7 +32424,7 @@ GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-46f1050f-e0fe-4b1a-b109-02561966a448 +Openstack-Request-Id: req-451cbc38-6f9b-4c26-b0a8-06568b08c792 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33512,7 +32433,7 @@ GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d8d3bb20-c0eb-4f61-a5f0-113b74edc43d +Openstack-Request-Id: req-48123d24-f00b-4bf3-9b5d-6cce0da6c4bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33521,7 +32442,7 @@ PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-045db47d-e4f9-428a-9ac0-f6355415273c +Openstack-Request-Id: req-411dc47e-1ce2-4ee0-979f-68e8048ba74c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33530,7 +32451,7 @@ PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0e165381-9161-4842-986a-327a5887a749 +Openstack-Request-Id: req-c21bb7c8-8f3a-45d5-a6d4-623c2176d527 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33539,174 +32460,146 @@ PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-afc38953-e345-43d1-ab9a-2c41e176028b +Openstack-Request-Id: req-a34bff12-973c-48d8-9dba-338713fffaaa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test__append_filename_param_with_filename -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test__append_filename_param_with_filename ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_132_lessee_reader_cannot_put_power_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_132_lessee_reader_cannot_put_power_state_change ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_053_nodes_states_secure_boot_put_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_053_nodes_states_secure_boot_put_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_196_volume_volume_target_id_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_196_volume_volume_target_id_delete_admin ... ok -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test__append_filename_param_with_qs -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test__append_filename_param_with_qs ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning -ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning ... ok -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test__append_filename_param_without_qs -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test__append_filename_param_without_qs ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_149_ports_port_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_149_ports_port_id_patch_member ... ok -ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value -ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying -ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_054_nodes_states_secure_boot_put_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_054_nodes_states_secure_boot_put_member ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor ... ok +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_100_nodes_vifs_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_100_nodes_vifs_get_member ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_133_third_party_admin_cannot_put_power_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_133_third_party_admin_cannot_put_power_state_change ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_149_ports_port_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_149_ports_port_id_patch_member ... ok +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found ... ok +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_197_volume_volume_target_id_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_197_volume_volume_target_id_delete_member ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_external_ip -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_external_ip ... ok -ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value -ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all -ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_external_ip_node_override -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_external_ip_node_override ... ok -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one -ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_local_copy -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_local_copy ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_150_ports_port_id_patch_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_150_ports_port_id_patch_reader ... ok -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_non_pregenerated_token -ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_non_pregenerated_token ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_055_nodes_states_secure_boot_put_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_055_nodes_states_secure_boot_put_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_198_volume_volume_target_id_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_198_volume_volume_target_id_delete_observer ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor ... ok +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_101_nodes_vifs_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_101_nodes_vifs_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_150_ports_port_id_patch_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_150_ports_port_id_patch_observer ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_134_owner_admin_can_put_boot_mode_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_134_owner_admin_can_put_boot_mode_state_change ... ok -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_local_link -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_local_link ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all -ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all ... ok -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_swift -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_swift ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_one -ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_one ... ok -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_151_ports_port_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_151_ports_port_id_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_199_nodes_volume_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_199_nodes_volume_get_admin ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_unpublish_image_local -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_unpublish_image_local ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good ... ok -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_056_nodes_states_provision_put_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_056_nodes_states_provision_put_admin ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id -ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode ... ok +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue_bios +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue_bios ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_198_volume_volume_target_id_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_198_volume_volume_target_id_delete_observer ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_empty_pxe_port_macs +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_empty_pxe_port_macs ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups ... ok +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_done +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_done ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_102_nodes_vifs_post_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_102_nodes_vifs_post_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_151_ports_port_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_151_ports_port_id_delete_admin ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_135_owner_manager_can_put_boot_mode_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_135_owner_manager_can_put_boot_mode_state_change ... ok -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload ... ok -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_unpublish_image_swift -ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_unpublish_image_swift ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id -ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_custom_params -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_custom_params ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_200_nodes_volume_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_200_nodes_volume_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_152_ports_port_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_152_ports_port_id_delete_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_057_nodes_states_provision_put_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_057_nodes_states_provision_put_member ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id -ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_error -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_error ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_136_lessee_admin_can_put_boot_mode_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_136_lessee_admin_can_put_boot_mode_state_change ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_anaconda_deploy_image_source -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_anaconda_deploy_image_source ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_fast_track -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_fast_track ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_boot_iso_conflict -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_boot_iso_conflict ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_201_nodes_volume_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_201_nodes_volume_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_153_ports_port_id_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_153_ports_port_id_delete_reader ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_fast_track_via_driver_info -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_fast_track_via_driver_info ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_058_nodes_states_provision_put_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_058_nodes_states_provision_put_observer ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_stage2_id -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_stage2_id ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_ok ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_with_ethernet_interfaces +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_with_ethernet_interfaces ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_no_mac +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_no_mac ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_199_nodes_volume_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_199_nodes_volume_get_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_fail +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_fail ... ok +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_none_pxe_port_macs +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_none_pxe_port_macs ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_without_ethernet_interfaces +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_without_ethernet_interfaces ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_136_lessee_admin_can_put_boot_mode_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_136_lessee_admin_can_put_boot_mode_state_change ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_103_nodes_vifs_post_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_103_nodes_vifs_post_member ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_152_ports_port_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_152_ports_port_id_delete_member ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_in_progress +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_in_progress ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_200_nodes_volume_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_200_nodes_volume_get_member ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_disabled +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_disabled ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_BIOS_boot_mode +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_BIOS_boot_mode ... ok +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups_no_address +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups_no_address ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_redfish_conn_error +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_redfish_conn_error ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_104_nodes_vifs_post_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_104_nodes_vifs_post_reader ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_enabled +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_enabled ... ok PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power {'target': 'power on'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e09e4eab-4139-43be-918c-e2a88fa7f1b7 +Openstack-Request-Id: req-b6a057be-a726-4df0-b159-1cd3377f178f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e09e4eab-4139-43be-918c-e2a88fa7f1b7 +Openstack-Request-Id: req-b6a057be-a726-4df0-b159-1cd3377f178f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33715,14 +32608,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power {'target': 'power on'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c56d9d2b-6546-4e3c-ad3d-fd1cd1bb4492 +Openstack-Request-Id: req-f6c58c5f-a39f-4bf2-9f7e-bb0d53b613f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c56d9d2b-6546-4e3c-ad3d-fd1cd1bb4492 +Openstack-Request-Id: req-f6c58c5f-a39f-4bf2-9f7e-bb0d53b613f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33731,14 +32624,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/power {'target': 'power on'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9282048c-89f6-433f-b4e6-b864d4e0d9ad +Openstack-Request-Id: req-a0197fa5-7741-4a22-a4ee-ea5e05ca3487 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9282048c-89f6-433f-b4e6-b864d4e0d9ad +Openstack-Request-Id: req-a0197fa5-7741-4a22-a4ee-ea5e05ca3487 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33747,14 +32640,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/power {'target': 'power on'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0a68377f-6f11-4fc3-b974-8168ba50a869 +Openstack-Request-Id: req-2199540b-2005-479d-8876-5439ada97359 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0a68377f-6f11-4fc3-b974-8168ba50a869 +Openstack-Request-Id: req-2199540b-2005-479d-8876-5439ada97359 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33763,14 +32656,14 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-853feb80-63d8-4780-9c1f-fa9646f497ca +Openstack-Request-Id: req-53bcf6c7-6941-4990-8593-12917d280920 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-853feb80-63d8-4780-9c1f-fa9646f497ca +Openstack-Request-Id: req-53bcf6c7-6941-4990-8593-12917d280920 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33779,14 +32672,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode {'target': 'uefi'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-1fa7907c-6303-49c9-a9d0-9932766fb11f +Openstack-Request-Id: req-0c908a6f-e863-4dc8-bb24-b0f3570cc6a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-1fa7907c-6303-49c9-a9d0-9932766fb11f +Openstack-Request-Id: req-0c908a6f-e863-4dc8-bb24-b0f3570cc6a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33795,14 +32688,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode {'target': 'uefi'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cdd7bceb-4c76-473f-9421-6e305fa5fa98 +Openstack-Request-Id: req-54d85cbf-9d99-467a-950c-2ecb56fa4953 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cdd7bceb-4c76-473f-9421-6e305fa5fa98 +Openstack-Request-Id: req-54d85cbf-9d99-467a-950c-2ecb56fa4953 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -33811,752 +32704,581 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/boot_mode {'target': 'uefi'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-2724c900-aafa-4db7-b2b7-934a6bfe9b79 +Openstack-Request-Id: req-f3a669a8-a5fa-4dd5-9f0b-0bcff43474ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-2724c900-aafa-4db7-b2b7-934a6bfe9b79 +Openstack-Request-Id: req-f3a669a8-a5fa-4dd5-9f0b-0bcff43474ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/boot_mode PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/boot_mode {'target': 'uefi'} -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_137_lessee_manager_can_put_boot_mode_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_137_lessee_manager_can_put_boot_mode_state_change ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection_no_inspection_ramdisk -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection_no_inspection_ramdisk ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_require_managed_boot -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_require_managed_boot ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_202_nodes_volume_connectors_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_202_nodes_volume_connectors_get_admin ... ok -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-230937b5-8da6-47c5-81a5-2ebbe5f8c9c3 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-230937b5-8da6-47c5-81a5-2ebbe5f8c9c3 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} -GOT:Response: 403 Forbidden +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_get_node_network_data +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_get_node_network_data ... ok +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_manual_management +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_manual_management ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_153_ports_port_id_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_153_ports_port_id_delete_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_201_nodes_volume_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_201_nodes_volume_get_observer ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_still_waiting +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_still_waiting ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_port_creation +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_port_creation ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_UEFI_boot_mode +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_UEFI_boot_mode ... ok +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate +ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_task_monitor_not_found +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_task_monitor_not_found ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_138_owner_member_can_put_boot_mode_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_138_owner_member_can_put_boot_mode_state_change ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_105_nodes_vifs_node_vif_ident_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_105_nodes_vifs_node_vif_ident_delete_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_without_boot_mode +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_without_boot_mode ... ok +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp ... ok +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-79cd78e6-9e52-4a6d-a7ec-39fe23ef1a1b +Openstack-Request-Id: req-dd1f85c3-10c5-417f-89b0-075c4930afdb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:15.151823+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-79cd78e6-9e52-4a6d-a7ec-39fe23ef1a1b +Openstack-Request-Id: req-dd1f85c3-10c5-417f-89b0-075c4930afdb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:15.151823+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c12fa2db-faac-48cf-8a9a-848f8dc999ab +Openstack-Request-Id: req-9a216c70-707f-4abd-8473-33e363c4d759 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c12fa2db-faac-48cf-8a9a-848f8dc999ab +Openstack-Request-Id: req-9a216c70-707f-4abd-8473-33e363c4d759 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} +API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-12111580-1bb6-443d-8752-aa33f9d3d6d7 +Openstack-Request-Id: req-bdf0e86d-a05c-48d4-8232-b9e91b20711c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-12111580-1bb6-443d-8752-aa33f9d3d6d7 +Openstack-Request-Id: req-bdf0e86d-a05c-48d4-8232-b9e91b20711c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0f35e78b-74ed-4598-b727-9d489fb6b341 +Openstack-Request-Id: req-db399ec4-fcc4-4d9f-b0f4-a3bbbebc4b51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0f35e78b-74ed-4598-b727-9d489fb6b341 +Openstack-Request-Id: req-db399ec4-fcc4-4d9f-b0f4-a3bbbebc4b51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-024da7a6-e6ae-4ddd-9efb-d4962f6edec8 +Openstack-Request-Id: req-8ac43183-9619-4d74-8122-196b33adfb51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-024da7a6-e6ae-4ddd-9efb-d4962f6edec8 +Openstack-Request-Id: req-8ac43183-9619-4d74-8122-196b33adfb51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f6ab14f9-acee-424b-aa49-ea8dd01be5be +Openstack-Request-Id: req-1de7cb2e-ae8e-475d-bc0b-980ac60489f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f6ab14f9-acee-424b-aa49-ea8dd01be5be +Openstack-Request-Id: req-1de7cb2e-ae8e-475d-bc0b-980ac60489f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-999021f6-ec76-43a1-9b4d-ca72e3e7a9bd +Openstack-Request-Id: req-a873f19f-2725-49c6-abfc-2113be3b3250 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-999021f6-ec76-43a1-9b4d-ca72e3e7a9bd +Openstack-Request-Id: req-a873f19f-2725-49c6-abfc-2113be3b3250 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_154_nodes_ports_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_154_nodes_ports_get_admin ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_unmanaged_error -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_unmanaged_error ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_059_nodes_states_raid_put_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_059_nodes_states_raid_put_admin ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_unmanaged_ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_unmanaged_ok ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_local_boot -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_local_boot ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_fail_http_url_not_set -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_fail_http_url_not_set ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_validate_ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_validate_ok ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_138_owner_member_can_put_boot_mode_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_138_owner_member_can_put_boot_mode_state_change ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image ... ok -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_154_nodes_ports_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_154_nodes_ports_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_202_nodes_volume_connectors_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_202_nodes_volume_connectors_get_admin ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_wait_elapsed +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_wait_elapsed ... ok +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_106_nodes_vifs_node_vif_ident_delete_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_106_nodes_vifs_node_vif_ident_delete_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_139_lessee_member_can_put_boot_mode_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_139_lessee_member_can_put_boot_mode_state_change ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_203_nodes_volume_connectors_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_203_nodes_volume_connectors_get_member ... ok +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state_unknown +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state_unknown ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_last_update +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_last_update ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_155_nodes_ports_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_155_nodes_ports_get_member ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_inspect_hardware_with_ethernet_interfaces_mac +ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_inspect_hardware_with_ethernet_interfaces_mac ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_more_updates +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_more_updates ... ok +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot ... ok +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-3a7567d0-8551-4df9-a23d-df517629f856 +Openstack-Request-Id: req-b6ed2c8f-e3f9-487a-958d-c00a81c9b178 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:31:35.417236+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-6a8ee84a-d847-4f78-acbb-156707c18485 +Openstack-Request-Id: req-80257777-4e0f-4b85-bbe9-5f7ea9e8d680 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-6a8ee84a-d847-4f78-acbb-156707c18485 +Openstack-Request-Id: req-80257777-4e0f-4b85-bbe9-5f7ea9e8d680 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0595ec1c-98df-4a0d-8002-0883083cb5cd +Openstack-Request-Id: req-60ce5a2a-c7dc-43e7-8a7d-823d0ef8ced6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0595ec1c-98df-4a0d-8002-0883083cb5cd +Openstack-Request-Id: req-60ce5a2a-c7dc-43e7-8a7d-823d0ef8ced6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 403 Forbidden +API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a5d2b486-8f78-4c09-bbce-94f4bac937c6 +Openstack-Request-Id: req-cf665c47-d702-46a6-8dcb-d2afb578637e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a5d2b486-8f78-4c09-bbce-94f4bac937c6 +Openstack-Request-Id: req-cf665c47-d702-46a6-8dcb-d2afb578637e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-808cda97-8006-4d22-be57-56736be6e390 +Openstack-Request-Id: req-d522c058-d939-4a30-bcea-668bd249b54f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-808cda97-8006-4d22-be57-56736be6e390 +Openstack-Request-Id: req-d522c058-d939-4a30-bcea-668bd249b54f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-66a82b07-27a2-4d95-8897-49334f55c24e +Openstack-Request-Id: req-33dc6cd9-dfd9-45e4-b657-f37306de4d95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-66a82b07-27a2-4d95-8897-49334f55c24e +Openstack-Request-Id: req-33dc6cd9-dfd9-45e4-b657-f37306de4d95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 +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-7e61db64-0409-483f-9d16-daff5d1ab647 +Openstack-Request-Id: req-2d08899a-bcf1-41d6-96b8-46c0903f850b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7e61db64-0409-483f-9d16-daff5d1ab647 +Openstack-Request-Id: req-2d08899a-bcf1-41d6-96b8-46c0903f850b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 +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-2798477c-5579-40db-bd5f-8e646ba3522a +Openstack-Request-Id: req-e373abd2-7a31-4bde-b0c4-f0b2efcddfa2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-2798477c-5579-40db-bd5f-8e646ba3522a +Openstack-Request-Id: req-e373abd2-7a31-4bde-b0c4-f0b2efcddfa2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_203_nodes_volume_connectors_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_203_nodes_volume_connectors_get_member ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_155_nodes_ports_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_155_nodes_ports_get_member ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_validate_require_managed_boot -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_validate_require_managed_boot ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_060_nodes_states_raid_put_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_060_nodes_states_raid_put_member ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_ramdisk_deploy -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_ramdisk_deploy ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_missing_stage2_id -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_missing_stage2_id ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on ... ok -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} -GOT:{'history': []} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?detail=true {} -GOT:{'history': [{'uuid': 'd8aa2a06-20f0-4f86-97ca-2007f13542f2', 'created_at': '2025-02-07T21:27:50.299875+00:00', 'severity': None, 'event_type': None, 'event': 'meow', 'conductor': 'cat-tree1', 'user': 'peaches', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d8aa2a06-20f0-4f86-97ca-2007f13542f2', 'rel': 'self'}]}, {'uuid': '943b98cd-dcd8-4d88-89e4-6ee80a2d1cab', 'created_at': '2025-02-07T21:27:50.310894+00:00', 'severity': None, 'event_type': None, 'event': 'purr', 'conductor': 'cat-tree2', 'user': 'sage', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/943b98cd-dcd8-4d88-89e4-6ee80a2d1cab', 'rel': 'self'}]}, {'uuid': '7c57a7ca-a736-4c4e-977a-3f29f042c6ab', 'created_at': '2025-02-07T21:27:50.312559+00:00', 'severity': None, 'event_type': None, 'event': 'grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr!', 'conductor': 'cat-tree3', 'user': 'bella', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7c57a7ca-a736-4c4e-977a-3f29f042c6ab', 'rel': 'self'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} -GOT:{'history': [{'uuid': 'c03b4e28-ac92-42d8-9fa4-66f582d55ff5', 'created_at': '2025-02-07T21:27:50.575514+00:00', 'severity': None, 'event': 'meow', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c03b4e28-ac92-42d8-9fa4-66f582d55ff5', 'rel': 'self'}]}, {'uuid': '52c87399-a34c-4723-9f56-015a0322d4a3', 'created_at': '2025-02-07T21:27:50.577311+00:00', 'severity': None, 'event': 'purr', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/52c87399-a34c-4723-9f56-015a0322d4a3', 'rel': 'self'}]}, {'uuid': '0daf7598-f7b5-4422-9d32-1638ccee8d79', 'created_at': '2025-02-07T21:27:50.578932+00:00', 'severity': None, 'event': 'grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/0daf7598-f7b5-4422-9d32-1638ccee8d79', 'rel': 'self'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1 {} -GOT:{'history': [{'uuid': 'e59d0a22-c64e-47ff-a775-809bb922e07e', 'created_at': '2025-02-07T21:27:51.049142+00:00', 'severity': None, 'event': 'meow', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e59d0a22-c64e-47ff-a775-809bb922e07e', 'rel': 'self'}]}], 'next': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=None&fields=uuid,created_at,severity,event&limit=1&marker=e59d0a22-c64e-47ff-a775-809bb922e07e'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=e59d0a22-c64e-47ff-a775-809bb922e07e {} -GOT:{'history': [{'uuid': '2b2edb58-23e7-4651-8242-ce22e7d4ff89', 'created_at': '2025-02-07T21:27:51.050803+00:00', 'severity': None, 'event': 'purr', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/2b2edb58-23e7-4651-8242-ce22e7d4ff89', 'rel': 'self'}]}], 'next': "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree1',created_at=2025-02-07T21:27:51Z,event='meow',event_type=None,id=1,node_id=1,severity=None,updated_at=None,user='peaches',uuid=e59d0a22-c64e-47ff-a775-809bb922e07e)&fields=uuid,created_at,severity,event&limit=1&marker=2b2edb58-23e7-4651-8242-ce22e7d4ff89"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=2b2edb58-23e7-4651-8242-ce22e7d4ff89 {} -GOT:{'history': [{'uuid': '3ecbbf3e-b53c-4292-84e0-7d2a7d86e4ed', 'created_at': '2025-02-07T21:27:51.052241+00:00', 'severity': None, 'event': 'grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3ecbbf3e-b53c-4292-84e0-7d2a7d86e4ed', 'rel': 'self'}]}], 'next': "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree2',created_at=2025-02-07T21:27:51Z,event='purr',event_type=None,id=2,node_id=1,severity=None,updated_at=None,user='sage',uuid=2b2edb58-23e7-4651-8242-ce22e7d4ff89)&fields=uuid,created_at,severity,event&limit=1&marker=3ecbbf3e-b53c-4292-84e0-7d2a7d86e4ed"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3ed15464-b758-483d-82f9-706a2291e23b {} -GOT:{'uuid': '3ed15464-b758-483d-82f9-706a2291e23b', 'created_at': '2025-02-07T21:27:51.357401+00:00', 'severity': None, 'event_type': None, 'event': 'meow', 'conductor': 'cat-tree1', 'user': 'peaches', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3ed15464-b758-483d-82f9-706a2291e23b', 'rel': 'self'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/52949728-59fc-4651-84c8-b0a16b469372 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 +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-b9bdf40e-83d8-45ff-be57-956a577e5ee3 +Openstack-Request-Id: req-7e8fd4a2-790a-4fca-b712-5ec61bc6a9ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/1234 {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/things/ouch {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-dda2b6c9-6591-4996-8740-11d9dd9de1c7 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"ouch\", \"debuginfo\": null}"} -GET: /v1/things {'name': 'foo', 'flag': True} -GOT:{'foo': True} -GET: /v1/things {'name': 'foo', 'flag': 'truish'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-63fd3763-8675-43de-8e69-d4be7174cf8f -{"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}"} -POST: /v1/things/ {'three': 'three', 'four': 'four', 'five': 'five'} -GOT:Response: 201 Created -Content-Type: application/json -Openstack-Request-Id: req-ebabd355-69e1-4ac1-aa95-fd15e5b9a3f9 -{"three": "three", "four": "four", "five": "five"} -POST: /v1/things/ {'three': 'three', 'four': 'fourrrr', 'five': 'five'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-4aa8dc39-1a25-4581-8dca-e274d3e0aeb9 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'fourrrr' is too long\", \"debuginfo\": null}"} -GET: /v1/things/no_content {} -GOT:Response: 204 No Content -Openstack-Request-Id: req-88043d14-9da0-44c2-a714-858716daf222 - -GET: /v1/things/response_content {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-3670a9a3-aa75-4cc7-b6be-de8ed2d815a4 -"nothing" -GET: /v1/things/response_custom_status {} -GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Request-Id: req-41d48642-8ca3-46de-a252-be7835cab9f6 -"accepted" -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked ... ok +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} +ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method +ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_107_nodes_vifs_node_vif_ident_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_107_nodes_vifs_node_vif_ident_delete_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_140_owner_reader_cannot_put_boot_mode_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_140_owner_reader_cannot_put_boot_mode_state_change ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_204_nodes_volume_connectors_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_204_nodes_volume_connectors_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_139_lessee_member_can_put_boot_mode_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_139_lessee_member_can_put_boot_mode_state_change ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_156_nodes_ports_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_156_nodes_ports_get_reader ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_061_nodes_states_raid_put_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_061_nodes_states_raid_put_observer ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_no_image_source_for_local_boot -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_no_image_source_for_local_boot ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_156_nodes_ports_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_156_nodes_ports_get_observer ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_wait +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_wait ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel ... ok +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_another_state +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_another_state ... ok +ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_managers_fail +ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_managers_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_108_nodes_management_indicators_get_allow +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_108_nodes_management_indicators_get_allow ... skipped 'Not implemented yet' +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_141_lessee_reader_cannot_put_boot_mode_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_141_lessee_reader_cannot_put_boot_mode_state_change ... ok +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_into_instance +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_into_instance ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_205_nodes_volume_targets_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_205_nodes_volume_targets_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_140_owner_reader_cannot_put_boot_mode_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_140_owner_reader_cannot_put_boot_mode_state_change ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_062_nodes_states_console_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_062_nodes_states_console_get_admin ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_non_local -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_non_local ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_157_nodes_ports_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_157_nodes_ports_detail_get_admin ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on ... ok +ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_no_managers +ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_no_managers ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_157_nodes_ports_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_157_nodes_ports_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_109_nodes_management_indicators_component_get_allow +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_109_nodes_management_indicators_component_get_allow ... skipped 'Not implemented yet' +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_timeout +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_timeout ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks ... ok +ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_oem_not_found +ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_oem_not_found ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_power +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_power ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_142_third_party_admin_cannot_put_boot_mode_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_142_third_party_admin_cannot_put_boot_mode_state_change ... ok +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_206_nodes_volume_targets_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_206_nodes_volume_targets_get_member ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_141_lessee_reader_cannot_put_boot_mode_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_141_lessee_reader_cannot_put_boot_mode_state_change ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_063_nodes_states_console_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_063_nodes_states_console_get_member ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_158_nodes_ports_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_158_nodes_ports_detail_get_member ... ok -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_1 +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_1 ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_158_nodes_ports_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_158_nodes_ports_detail_get_member ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_110_nodes_management_indicators_component_ind_ident_get_allow +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_110_nodes_management_indicators_component_ind_ident_get_allow ... skipped 'Not implemented yet' +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed ... ok +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_no_fast_track +ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_no_fast_track ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_2 +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_2 ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test__append_filename_param_with_filename +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test__append_filename_param_with_filename ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed_no_firmware_upd +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed_no_firmware_upd ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_207_nodes_volume_targets_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_207_nodes_volume_targets_get_observer ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_142_third_party_admin_cannot_put_boot_mode_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_142_third_party_admin_cannot_put_boot_mode_state_change ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls ... ok -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_current_none -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_current_none ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_064_nodes_states_console_put_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_064_nodes_states_console_put_admin ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_111_nodes_management_indicators_component_ind_ident_put_allow +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_111_nodes_management_indicators_component_ind_ident_put_allow ... skipped 'Not implemented yet' +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_143_owner_admin_can_put_secure_boot_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_143_owner_admin_can_put_secure_boot_state_change ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e3c03e71-62cd-4f81-9a86-4292731a753f +Openstack-Request-Id: req-122dd58c-15f8-4172-8b49-2921858fdf46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e3c03e71-62cd-4f81-9a86-4292731a753f +Openstack-Request-Id: req-122dd58c-15f8-4172-8b49-2921858fdf46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} -GOT:Response: 200 OK +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3c126ff4-2379-453e-aa7d-9fbe0fc50df1 +Openstack-Request-Id: req-16cd6bd8-f062-45f5-a333-77ab5e4c6330 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3c126ff4-2379-453e-aa7d-9fbe0fc50df1 +Openstack-Request-Id: req-16cd6bd8-f062-45f5-a333-77ab5e4c6330 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c346f587-6977-4492-9bb5-c8a43b21f3bc +Openstack-Request-Id: req-d0bfd8d1-34d7-4146-bb45-30cf887b51ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:31:59.850975+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +{"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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c346f587-6977-4492-9bb5-c8a43b21f3bc +Openstack-Request-Id: req-d0bfd8d1-34d7-4146-bb45-30cf887b51ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:31:59.850975+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +{"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"}]}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9df2e898-4ba0-4a52-ad9a-43fdc1ccdbeb +Openstack-Request-Id: req-2cf5b7e7-23e2-4857-996d-fcc022b2cded X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:32:02.161954+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:18.397813+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9df2e898-4ba0-4a52-ad9a-43fdc1ccdbeb +Openstack-Request-Id: req-2cf5b7e7-23e2-4857-996d-fcc022b2cded X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:32:02.161954+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:18.397813+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-5a9c25fa-78e2-4aa4-b84a-a0580311457f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:32:05.828429+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_159_nodes_ports_detail_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_159_nodes_ports_detail_get_reader ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on ... ok -ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps -ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps ... ok -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_143_owner_admin_can_put_secure_boot_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_143_owner_admin_can_put_secure_boot_state_change ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_208_drivers_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_208_drivers_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_065_nodes_states_console_put_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_065_nodes_states_console_put_member ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off ... ok -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_primary_none -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_primary_none ... ok -ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_160_portgroups_ports_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_160_portgroups_ports_get_admin ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on ... ok -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_066_nodes_states_console_put_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_066_nodes_states_console_put_observer ... ok -ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict -ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict ... ok -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_144_owner_manager_can_put_secure_boot_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_144_owner_manager_can_put_secure_boot_state_change ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_209_drivers_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_209_drivers_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_161_portgroups_ports_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_161_portgroups_ports_get_member ... ok -ironic.tests.unit.objects.test_trait.TestTraitObject.test_create -ironic.tests.unit.objects.test_trait.TestTraitObject.test_create ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset ... ok -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device ... ok -ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list -ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off ... ok -ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy -ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy ... ok -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-b7724277-08f0-4a5d-8e4c-5e4e238db8c5 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-b7724277-08f0-4a5d-8e4c-5e4e238db8c5 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'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-dca9897d-6a6f-4247-a667-f7ac35674bff -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-dca9897d-6a6f-4247-a667-f7ac35674bff -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'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-9258c02c-544a-43c0-ae8a-5e7055aef0e4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-9258c02c-544a-43c0-ae8a-5e7055aef0e4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-5d625802-5e32-4af6-b74c-517825835391 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-5d625802-5e32-4af6-b74c-517825835391 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-9ad252b0-f282-42ad-b2fc-f980f753b89d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-9ad252b0-f282-42ad-b2fc-f980f753b89d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-9ea36d28-716c-43b0-bc02-cc0021e0ff88 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-9ea36d28-716c-43b0-bc02-cc0021e0ff88 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1b93aee2-c9ff-4869-866e-8c455ab44391 +Openstack-Request-Id: req-973fda7a-4f06-4748-b9fb-cdb56f500540 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1b93aee2-c9ff-4869-866e-8c455ab44391 +Openstack-Request-Id: req-973fda7a-4f06-4748-b9fb-cdb56f500540 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-bcd7d429-0704-4a8a-b388-171acab474cb -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bcd7d429-0704-4a8a-b388-171acab474cb +Openstack-Request-Id: req-c47d8c7e-bc94-4d77-acea-7db0baebdff0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on ... ok +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:19.610296+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_159_nodes_ports_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_159_nodes_ports_detail_get_observer ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test__append_filename_param_with_qs +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test__append_filename_param_with_qs ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test__append_filename_param_without_qs +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test__append_filename_param_without_qs ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status_no_firmware_upd +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status_no_firmware_upd ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_112_portgroups_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_112_portgroups_get_admin ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_external_ip +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_external_ip ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_error +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_error ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_144_owner_manager_can_put_secure_boot_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_144_owner_manager_can_put_secure_boot_state_change ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_208_drivers_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_208_drivers_get_admin ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection_exc +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection_exc ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_https +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_https ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_external_ip_node_override +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_external_ip_node_override ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_160_portgroups_ports_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_160_portgroups_ports_get_admin ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_swift +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_swift ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_local_copy +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_local_copy ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_113_portgroups_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_113_portgroups_get_member ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_config +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_config ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_local_link +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_local_link ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection_no_inspection_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection_no_inspection_ramdisk ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f8946a0f-ac98-4430-bef5-7109e22552d1 +Openstack-Request-Id: req-8b4ca335-f652-4415-a4e5-9e6148ca0922 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f8946a0f-ac98-4430-bef5-7109e22552d1 +Openstack-Request-Id: req-8b4ca335-f652-4415-a4e5-9e6148ca0922 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34565,14 +33287,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode {'target': 'uefi'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-6b00721f-fa09-4549-b628-2e969b030500 +Openstack-Request-Id: req-a4458f03-8b57-43c6-96af-1c1355b2ba81 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-6b00721f-fa09-4549-b628-2e969b030500 +Openstack-Request-Id: req-a4458f03-8b57-43c6-96af-1c1355b2ba81 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34581,14 +33303,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/boot_mode {'target': 'uefi'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b56c5b9b-7526-4876-b666-f145ca7e26f6 +Openstack-Request-Id: req-199a1dc3-de12-4683-8062-7eb73a0ace35 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b56c5b9b-7526-4876-b666-f145ca7e26f6 +Openstack-Request-Id: req-199a1dc3-de12-4683-8062-7eb73a0ace35 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34597,14 +33319,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/boot_mode {'target': 'uefi'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c96e27e8-c5c7-4be9-83a8-f8e4a04f2ade +Openstack-Request-Id: req-f1fe80a8-aac7-40a0-a072-256327f269bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c96e27e8-c5c7-4be9-83a8-f8e4a04f2ade +Openstack-Request-Id: req-f1fe80a8-aac7-40a0-a072-256327f269bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34613,14 +33335,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/boot_mode {'target': 'uefi'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-93d8c6b4-7634-404d-b3f0-f6d3bf3cf4d2 +Openstack-Request-Id: req-d1162f46-5666-493b-a8bd-78158a1dddfc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-93d8c6b4-7634-404d-b3f0-f6d3bf3cf4d2 +Openstack-Request-Id: req-d1162f46-5666-493b-a8bd-78158a1dddfc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34629,14 +33351,14 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-00b64513-a3c0-4d85-ab4c-b73eddd69c21 +Openstack-Request-Id: req-1d5233cb-af58-416d-b350-98d5f2c90b0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-00b64513-a3c0-4d85-ab4c-b73eddd69c21 +Openstack-Request-Id: req-1d5233cb-af58-416d-b350-98d5f2c90b0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34645,14 +33367,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot {'target': 'true'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-5340ac0e-2730-49cc-8679-e53e21eaffe1 +Openstack-Request-Id: req-dd1c00d2-bb87-4b00-9644-073276ad07ab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-5340ac0e-2730-49cc-8679-e53e21eaffe1 +Openstack-Request-Id: req-dd1c00d2-bb87-4b00-9644-073276ad07ab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34661,43 +33383,79 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot {'target': 'true'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f8d625ac-cca6-4591-8eeb-87f3c4c4b300 +Openstack-Request-Id: req-2cfa6410-05ac-44aa-892e-b2fb504a4a2c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f8d625ac-cca6-4591-8eeb-87f3c4c4b300 +Openstack-Request-Id: req-2cfa6410-05ac-44aa-892e-b2fb504a4a2c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/secure_boot PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/secure_boot {'target': 'true'} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_067_nodes_vendor_passthru_methods_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_067_nodes_vendor_passthru_methods_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_145_lessee_admin_can_put_secure_boot_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_145_lessee_admin_can_put_secure_boot_state_change ... ok -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_161_portgroups_ports_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_161_portgroups_ports_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_209_drivers_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_209_drivers_get_member ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable_in_driver_info +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable_in_driver_info ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_swift +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_publish_image_swift ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot_not_implemented +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot_not_implemented ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_114_portgroups_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_114_portgroups_get_reader ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_internal +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_internal ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_fail_http_url_not_set +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_fail_http_url_not_set ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_unpublish_image_local +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_unpublish_image_local ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_invalid_file +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_invalid_file ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_162_portgroups_ports_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_162_portgroups_ports_get_observer ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_146_lessee_manager_can_put_secure_boot_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_146_lessee_manager_can_put_secure_boot_state_change ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_unpublish_image_swift +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_unpublish_image_swift ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_210_drivers_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_210_drivers_get_observer ... ok -ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list -ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_162_portgroups_ports_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_162_portgroups_ports_get_reader ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects ... ok -ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists -ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists ... ok -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_missing_stage2_id +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_missing_stage2_id ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_115_portgroups_post_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_115_portgroups_post_admin ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-703e4aa4-3857-4755-91d0-8e609e95f85c +Openstack-Request-Id: req-678c73d0-e3c8-470e-866c-317c73ec7ec6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34706,7 +33464,7 @@ DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c24ac17c-c6a3-43e9-904c-f00b3a0f78ec +Openstack-Request-Id: req-2cd72c8e-412d-41db-8c78-298269a04d33 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34715,7 +33473,7 @@ DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7e06f9ad-ec6a-43d0-a6d5-5ad417edf76f +Openstack-Request-Id: req-4f7e2d06-69ee-476d-99b9-e0e02a8b6ea2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34724,7 +33482,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7e835724-0aff-4aa3-9449-173e30ed7a96 +Openstack-Request-Id: req-448d9832-59e4-4874-b1fc-fd5bfd9d114a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34733,7 +33491,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fa7e68ea-88f5-45a0-9539-3881fc2d9da9 +Openstack-Request-Id: req-33436629-9d08-49aa-93ac-43eb121980c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34742,7 +33500,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c2fd74e9-6188-4822-ab71-7d100f30ec63 +Openstack-Request-Id: req-5db9045b-bcef-4025-8cb0-f31a88a209ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34751,7 +33509,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a5e4b8b5-ae53-4a78-b76d-3971c61e8542 +Openstack-Request-Id: req-9efcd340-2447-412a-a103-49df5f4062ea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34760,7 +33518,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-88f43e29-ebf7-424c-8f84-c8e99ac1538c +Openstack-Request-Id: req-2f055767-366a-4288-b926-2edac632d059 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34769,7 +33527,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-835a2084-61da-4f45-8292-0736efd65d67 +Openstack-Request-Id: req-f0f9de6a-3b0a-4d7c-b1a3-7364cac7eec2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34778,7 +33536,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c5ac2e07-d2c5-4d2b-a3e5-f07d1ca36659 +Openstack-Request-Id: req-798fe32a-ed0a-4fa1-8578-bfd359b222c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34787,7 +33545,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f69328e9-e329-428a-ba2b-0ab9a856f43a +Openstack-Request-Id: req-98b0ad95-edd5-4a70-9c07-634874e2226b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34796,7 +33554,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8dbb1bba-f877-4f87-982f-d6c0ed0f089a +Openstack-Request-Id: req-4c2829cf-3e79-4b13-aef8-0e631d74fb70 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34805,7 +33563,7 @@ GET: /v1/drivers {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-3b6d3db7-9f3c-4a18-89ef-c51b95d24a7d +Openstack-Request-Id: req-609b6de7-9d33-426e-9a2e-b7e25bebb95e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34814,7 +33572,7 @@ GET: /v1/drivers {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-13c77f9c-f74b-49e2-ad05-c41f5096ceeb +Openstack-Request-Id: req-ec421f33-0c8f-41a8-9b18-1abf1a3459bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -34823,458 +33581,522 @@ GET: /v1/drivers {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-b1742f40-57d9-40ca-ac4e-da645a31103c +Openstack-Request-Id: req-88a9c127-41f5-40e1-9cb8-f3eb20218a56 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id -ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_member ... ok -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl ... ok -ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names -ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_163_portgroups_ports_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_163_portgroups_ports_detail_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_146_lessee_manager_can_put_secure_boot_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_146_lessee_manager_can_put_secure_boot_state_change ... ok -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param_not_found +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param_not_found ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_163_portgroups_ports_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_163_portgroups_ports_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_clean +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_clean ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_no_image_source_for_local_boot +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_no_image_source_for_local_boot ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_147_owner_member_can_put_secure_boot_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_147_owner_member_can_put_secure_boot_state_change ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_211_drivers_driver_name_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_211_drivers_driver_name_get_admin ... ok -ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute -ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset ... ok -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses ... ok -ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute -ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_observer ... ok -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl ... ok -ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked -ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked ... ok -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_116_portgroups_post_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_116_portgroups_post_member ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bios +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bios ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_deploy +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_deploy ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_no_ports_found +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_no_ports_found ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_164_portgroups_ports_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_164_portgroups_ports_detail_get_member ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_non_local +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_non_local ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_success +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_success ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_create +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_create ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_117_portgroups_post_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_117_portgroups_post_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_148_lessee_member_can_put_secure_boot_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_148_lessee_member_can_put_secure_boot_state_change ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_212_drivers_driver_name_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_212_drivers_driver_name_get_member ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback_restricted +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback_restricted ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_file +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_file ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_delete +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_delete ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_165_portgroups_ports_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_165_portgroups_ports_detail_get_observer ... ok +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -PATCH: /v1/volume/connectors/d0e4ac9f-4eea-4785-afad-24856a80b405 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found +Openstack-Request-Id: req-7e8fd4a2-790a-4fca-b712-5ec61bc6a9ad +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups +GET: /v1/portgroups {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-80535013-cfa3-4571-8dfb-db6034aa8f13 +Openstack-Request-Id: req-84e1ab99-237c-48c8-98db-123a055b6802 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector d0e4ac9f-4eea-4785-afad-24856a80b405 could not be found.\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on ... ok -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_indicators_default_impl -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_indicators_default_impl ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_164_portgroups_ports_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_164_portgroups_ports_detail_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_147_owner_member_can_put_secure_boot_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_147_owner_member_can_put_secure_boot_state_change ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects ... ok -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_212_drivers_driver_name_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_212_drivers_driver_name_get_member ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off ... ok -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_070_nodes_vendor_passthru_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_070_nodes_vendor_passthru_get_admin ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on ... ok -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_indicator_state_default_impl -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_indicator_state_default_impl ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_165_portgroups_ports_detail_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_165_portgroups_ports_detail_get_reader ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_148_lessee_member_can_put_secure_boot_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_148_lessee_member_can_put_secure_boot_state_change ... ok -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_213_drivers_driver_name_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_213_drivers_driver_name_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_071_nodes_vendor_passthru_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_071_nodes_vendor_passthru_get_member ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_166_volume_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_166_volume_get_admin ... ok -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_149_owner_reader_cannot_put_secure_boot_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_149_owner_reader_cannot_put_secure_boot_state_change ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off ... ok -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_214_drivers_properties_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_214_drivers_properties_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_072_nodes_vendor_passthru_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_072_nodes_vendor_passthru_get_observer ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_167_volume_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_167_volume_get_member ... ok -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu ... ok -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_150_lessee_reader_cannot_put_secure_boot_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_150_lessee_reader_cannot_put_secure_boot_state_change ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off ... ok +{"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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5a9c25fa-78e2-4aa4-b84a-a0580311457f +Openstack-Request-Id: req-84e1ab99-237c-48c8-98db-123a055b6802 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:32:05.828429+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +{"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"}]}]} +API ACL Testing Path get /v1/portgroups +GET: /v1/portgroups {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a7bc662a-7ff5-475b-9f89-1a6a37a97e18 +Openstack-Request-Id: req-9ad51304-d859-4289-8bb0-aaf431a3229d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} +{"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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a7bc662a-7ff5-475b-9f89-1a6a37a97e18 +Openstack-Request-Id: req-9ad51304-d859-4289-8bb0-aaf431a3229d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +{"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"}]}]} +API ACL Testing Path get /v1/portgroups +GET: /v1/portgroups {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2f576f94-9d3d-481b-92e6-5bfc03055809 +Openstack-Request-Id: req-3538af6f-b49f-49ce-aa34-8fc7c3af5795 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} +{"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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2f576f94-9d3d-481b-92e6-5bfc03055809 +Openstack-Request-Id: req-3538af6f-b49f-49ce-aa34-8fc7c3af5795 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} -GOT:Response: 200 OK +{"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"}]}]} +API ACL Testing Path post /v1/portgroups +POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-ca1d120f-e226-4471-99bc-639482d89eb8 +Location: http://localhost/v1/portgroups/64517d88-d2e8-451c-b40d-a531daa9d505 +Openstack-Request-Id: req-5f718162-efe2-49f7-be46-3922769d8b75 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -ACL Test GOT Response: 200 OK +{"uuid": "64517d88-d2e8-451c-b40d-a531daa9d505", "created_at": "2024-01-06T15:35:21.432496+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/64517d88-d2e8-451c-b40d-a531daa9d505", "rel": "self"}, {"href": "http://localhost/portgroups/64517d88-d2e8-451c-b40d-a531daa9d505", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/64517d88-d2e8-451c-b40d-a531daa9d505/ports", "rel": "self"}, {"href": "http://localhost/portgroups/64517d88-d2e8-451c-b40d-a531daa9d505/ports", "rel": "bookmark"}]} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-ca1d120f-e226-4471-99bc-639482d89eb8 +Location: http://localhost/v1/portgroups/64517d88-d2e8-451c-b40d-a531daa9d505 +Openstack-Request-Id: req-5f718162-efe2-49f7-be46-3922769d8b75 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} -GOT:Response: 200 OK +{"uuid": "64517d88-d2e8-451c-b40d-a531daa9d505", "created_at": "2024-01-06T15:35:21.432496+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/64517d88-d2e8-451c-b40d-a531daa9d505", "rel": "self"}, {"href": "http://localhost/portgroups/64517d88-d2e8-451c-b40d-a531daa9d505", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/64517d88-d2e8-451c-b40d-a531daa9d505/ports", "rel": "self"}, {"href": "http://localhost/portgroups/64517d88-d2e8-451c-b40d-a531daa9d505/ports", "rel": "bookmark"}]} +API ACL Testing Path post /v1/portgroups +POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-833a2966-0bfd-4b9a-b684-c680e63cac57 +Openstack-Request-Id: req-ef11c495-de17-4d74-9d55-14063ebc4500 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-833a2966-0bfd-4b9a-b684-c680e63cac57 +Openstack-Request-Id: req-ef11c495-de17-4d74-9d55-14063ebc4500 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/portgroups +POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5cffa58f-ed47-4e43-8d8c-a3036bd6bc88 +Openstack-Request-Id: req-eba0bf0c-d79d-4419-b4dc-d47bc3bc0c98 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-eba0bf0c-d79d-4419-b4dc-d47bc3bc0c98 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_from_swift +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_from_swift ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_no_retries +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_no_retries ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_149_owner_reader_cannot_put_secure_boot_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_149_owner_reader_cannot_put_secure_boot_state_change ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_118_portgroups_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_118_portgroups_detail_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_213_drivers_driver_name_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_213_drivers_driver_name_get_observer ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_swift_noop +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_swift_noop ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state_not_implemented +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state_not_implemented ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_retries +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_retries ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid1 +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid1 ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_swift_schema +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_swift_schema ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_166_volume_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_166_volume_get_admin ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_verify +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_verify ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid5 +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid5 ... ok +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_handle_ibmc_exception_retry +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_handle_ibmc_exception_retry ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_119_portgroups_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_119_portgroups_detail_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_150_lessee_reader_cannot_put_secure_boot_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_150_lessee_reader_cannot_put_secure_boot_state_change ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid6 +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid6 ... ok +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_with_instance_info +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_with_instance_info ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_214_drivers_properties_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_214_drivers_properties_get_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader_with_prep +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader_with_prep ... ok +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_167_volume_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_167_volume_get_member ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_failed +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_failed ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_default_boot_mode +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_default_boot_mode ... ok +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme_with_port +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme_with_port ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_151_third_party_admin_cannot_put_secure_boot_state_change +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_151_third_party_admin_cannot_put_secure_boot_state_change ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_120_portgroups_detail_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_120_portgroups_detail_get_reader ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync ... ok +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_address +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_address ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_still_processing +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_still_processing ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_extra_params +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_extra_params ... ok +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_215_drivers_properties_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_215_drivers_properties_get_member ... ok ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5cffa58f-ed47-4e43-8d8c-a3036bd6bc88 +Openstack-Request-Id: req-c47d8c7e-bc94-4d77-acea-7db0baebdff0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:19.610296+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-11e30246-6781-4faf-8b7b-8bb2c0665a2f +Openstack-Request-Id: req-5711320a-de1f-4f10-8921-c454838ee5d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": []} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-11e30246-6781-4faf-8b7b-8bb2c0665a2f +Openstack-Request-Id: req-5711320a-de1f-4f10-8921-c454838ee5d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": []} -API ACL Testing Path get /v1/volume -GET: /v1/volume {} -GOT:Response: 200 OK +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bd23100c-431b-465a-808c-5de88e41fd9f +Openstack-Request-Id: req-c7d6d112-ec60-4e18-972a-b6a60d8c419f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bd23100c-431b-465a-808c-5de88e41fd9f +Openstack-Request-Id: req-c7d6d112-ec60-4e18-972a-b6a60d8c419f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/volume -GET: /v1/volume {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1aded482-1a68-4b3e-83f7-48d7353dda03 +Openstack-Request-Id: req-6a11c7e3-f925-4e02-b1ed-cdaa13cf864b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} +{"ports": []} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1aded482-1a68-4b3e-83f7-48d7353dda03 +Openstack-Request-Id: req-6a11c7e3-f925-4e02-b1ed-cdaa13cf864b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/volume -GET: /v1/volume {} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_215_drivers_properties_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_215_drivers_properties_get_member ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_168_volume_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_168_volume_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_073_nodes_vendor_passthru_post_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_073_nodes_vendor_passthru_post_admin ... ok -ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset ... ok -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_151_third_party_admin_cannot_put_secure_boot_state_change -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_151_third_party_admin_cannot_put_secure_boot_state_change ... ok -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_074_nodes_vendor_passthru_post_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_074_nodes_vendor_passthru_post_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_169_volume_connectors_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_169_volume_connectors_get_admin ... ok -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_216_drivers_properties_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_216_drivers_properties_get_observer ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on ... ok -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off ... ok -GOT:Response: 503 Service Unavailable +{"ports": []} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ffe20eb8-29dc-46f6-b103-8edf30a80725 +Openstack-Request-Id: req-9b37b7c8-013d-45b8-8551-4a0037617694 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"ports": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ffe20eb8-29dc-46f6-b103-8edf30a80725 +Openstack-Request-Id: req-9b37b7c8-013d-45b8-8551-4a0037617694 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} +{"ports": []} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9c2843c3-7794-4cfa-b8a0-4abfacc97fd3 +Openstack-Request-Id: req-06ddb5ec-4d4d-48b1-8dcb-4af42ce14121 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9c2843c3-7794-4cfa-b8a0-4abfacc97fd3 +Openstack-Request-Id: req-06ddb5ec-4d4d-48b1-8dcb-4af42ce14121 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5848c35a-d331-4829-a88f-0a3616aab101 +Openstack-Request-Id: req-d3e70bfc-fa42-41b1-8c92-5228db144c50 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"ports": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5848c35a-d331-4829-a88f-0a3616aab101 +Openstack-Request-Id: req-d3e70bfc-fa42-41b1-8c92-5228db144c50 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} -GOT:Response: 503 Service Unavailable +{"ports": []} +API ACL Testing Path get /v1/volume +GET: /v1/volume {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-491e2b3a-9367-4755-82b9-483a764d9237 +Openstack-Request-Id: req-38be9088-7134-4c1f-9845-c77caea6dce9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-491e2b3a-9367-4755-82b9-483a764d9237 +Openstack-Request-Id: req-38be9088-7134-4c1f-9845-c77caea6dce9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} -GOT:Response: 404 Not Found +{"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"}]} +API ACL Testing Path get /v1/volume +GET: /v1/volume {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3e5ce2f1-c45e-49c5-8081-4b040a5df7e9 +Openstack-Request-Id: req-34ee3e6a-a2dd-4cb4-bc5a-0b0c01d2e56d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3e5ce2f1-c45e-49c5-8081-4b040a5df7e9 +Openstack-Request-Id: req-34ee3e6a-a2dd-4cb4-bc5a-0b0c01d2e56d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume +GET: /v1/volume {} +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_indicators +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_indicators ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios +ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_168_volume_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_168_volume_get_observer ... ok +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_smartnic_port +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_smartnic_port ... ok +API ACL Testing Path get /v1/portgroups/detail +GET: /v1/portgroups/detail {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fd63b719-f95e-425a-94e9-ad1e151637cb +Openstack-Request-Id: req-6f7f5e47-3b5a-49ff-8eb6-aef708ea0f1a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:22.791246+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fd63b719-f95e-425a-94e9-ad1e151637cb +Openstack-Request-Id: req-6f7f5e47-3b5a-49ff-8eb6-aef708ea0f1a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None -GOT:Response: 503 Service Unavailable +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:22.791246+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/portgroups/detail +GET: /v1/portgroups/detail {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-15d03082-ee69-4b64-8bba-504e0abb72d4 +Openstack-Request-Id: req-baf81575-74c3-40d8-a633-31434870ef70 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:23.235640+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-15d03082-ee69-4b64-8bba-504e0abb72d4 +Openstack-Request-Id: req-baf81575-74c3-40d8-a633-31434870ef70 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None -GOT:Response: 404 Not Found +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:23.235640+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/portgroups/detail +GET: /v1/portgroups/detail {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-62e29751-0d98-4176-8efd-5b9db9cd362e +Openstack-Request-Id: req-bf832e7e-d7f0-4ce1-91c8-cfa28440594c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:23.726287+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-62e29751-0d98-4176-8efd-5b9db9cd362e +Openstack-Request-Id: req-bf832e7e-d7f0-4ce1-91c8-cfa28440594c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid ... ok +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:23.726287+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-2817e4b2-1b25-4d29-b93d-4dc84bbd972e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:24.195530+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_success +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_success ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params ... ok +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_missing_info +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_missing_info ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_121_portgroups_portgroup_ident_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_121_portgroups_portgroup_ident_get_admin ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi +ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_152_owner_admin_can_change_provision_state ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_152_owner_admin_can_change_provision_state ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_075_nodes_vendor_passthru_post_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_075_nodes_vendor_passthru_post_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_170_volume_connectors_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_170_volume_connectors_get_member ... ok -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_217_drivers_raid_logical_disk_properties_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_217_drivers_raid_logical_disk_properties_get_admin ... ok -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_execute_clean_step +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_execute_clean_step ... ok +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_path_verify_ca +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_path_verify_ca ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_task_mon_error +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_task_mon_error ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_216_drivers_properties_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_216_drivers_properties_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_169_volume_connectors_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_169_volume_connectors_get_admin ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay +ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay ... ok +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_capath +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_capath ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid10 +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid10 ... ok +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f185ad29-9bb4-47f2-acd8-7f556ec1b6ab +Openstack-Request-Id: req-e11da203-1c0e-48a0-bd79-cfa38b598b23 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f185ad29-9bb4-47f2-acd8-7f556ec1b6ab +Openstack-Request-Id: req-e11da203-1c0e-48a0-bd79-cfa38b598b23 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35283,14 +34105,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/secure_boot {'target': 'true'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ad6a23b7-1155-4c52-a3a1-a47ef05b273c +Openstack-Request-Id: req-34e867e3-2d43-41c2-9a80-5fa8330dac03 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ad6a23b7-1155-4c52-a3a1-a47ef05b273c +Openstack-Request-Id: req-34e867e3-2d43-41c2-9a80-5fa8330dac03 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35299,14 +34121,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot {'target': 'true'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-2d67fc1d-7dff-45a2-a078-18b0db08d584 +Openstack-Request-Id: req-b89e52d5-0832-48ab-8065-abdd0e3256c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-2d67fc1d-7dff-45a2-a078-18b0db08d584 +Openstack-Request-Id: req-b89e52d5-0832-48ab-8065-abdd0e3256c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35315,14 +34137,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/secure_boot {'target': 'true'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-fd920d11-af5a-44aa-9325-f8a99c8f4988 +Openstack-Request-Id: req-baa7e104-1ea8-4ec1-b836-defcc989da76 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-fd920d11-af5a-44aa-9325-f8a99c8f4988 +Openstack-Request-Id: req-baa7e104-1ea8-4ec1-b836-defcc989da76 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35331,14 +34153,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/secure_boot {'target': 'true'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fdd4f4c5-3455-4e51-a1ef-56ed5c48244c +Openstack-Request-Id: req-62cc1a73-0fd7-4346-8da1-c302fa1a7b5f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fdd4f4c5-3455-4e51-a1ef-56ed5c48244c +Openstack-Request-Id: req-62cc1a73-0fd7-4346-8da1-c302fa1a7b5f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35347,14 +34169,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/secure_boot {'target': 'true'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a699698c-ea01-4e8f-83f4-2adba85e31c5 +Openstack-Request-Id: req-2803efa9-bd9c-4ed3-b2c3-8a6fb3617d94 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a699698c-ea01-4e8f-83f4-2adba85e31c5 +Openstack-Request-Id: req-2803efa9-bd9c-4ed3-b2c3-8a6fb3617d94 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35363,14 +34185,14 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2cdc968d-6019-4591-98fb-044b797772a2 +Openstack-Request-Id: req-fbc5f588-db4d-47a7-b99d-55a6e5481740 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2cdc968d-6019-4591-98fb-044b797772a2 +Openstack-Request-Id: req-fbc5f588-db4d-47a7-b99d-55a6e5481740 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35379,74 +34201,162 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision {'target': 'deploy'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0d876f8c-16ab-407f-9a37-151c1f3130af +Openstack-Request-Id: req-817c0d95-b192-49a6-a290-9b865fcd1227 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0d876f8c-16ab-407f-9a37-151c1f3130af +Openstack-Request-Id: req-817c0d95-b192-49a6-a290-9b865fcd1227 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision {'target': 'deploy'} -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception +ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_153_owner_manager_can_change_provision_state ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_153_owner_manager_can_change_provision_state ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_171_volume_connectors_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_171_volume_connectors_get_reader ... ok -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_076_nodes_vendor_passthru_put_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_076_nodes_vendor_passthru_put_admin ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_member ... ok -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh -ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh ... ok -GOT:{'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.80'}, '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'}]} -GET: /v1/ {} -GOT:{'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.80'}} -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_172_volume_connectors_post_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_172_volume_connectors_post_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid5 +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid5 ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_deploy_steps +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_deploy_steps ... ok +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary +ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_170_volume_connectors_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_170_volume_connectors_get_member ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch +ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_122_portgroups_portgroup_ident_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_122_portgroups_portgroup_ident_get_member ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info_bios +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info_bios ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_217_drivers_raid_logical_disk_properties_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_217_drivers_raid_logical_disk_properties_get_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1a +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1a ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw +ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_estimate_fallback +ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_estimate_fallback ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default_not_implemented +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default_not_implemented ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_clear_flag +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_clear_flag ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_bios +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_bios ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_171_volume_connectors_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_171_volume_connectors_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_123_portgroups_portgroup_ident_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_123_portgroups_portgroup_ident_get_reader ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_active +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_active ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_154_owner_member_can_change_provision_state ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_154_owner_member_can_change_provision_state ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_077_nodes_vendor_passthru_put_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_077_nodes_vendor_passthru_put_member ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset ... ok -Exception ignored in: -Traceback (most recent call last): - File "/usr/lib/python3.11/tempfile.py", line 589, in __del__ - File "/usr/lib/python3.11/tempfile.py", line 585, in close -FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmph3u5jv8y/tmptku54_ys' -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off ... ok +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_error +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_error ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_immediate +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_immediate ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_cleaning +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_cleaning ... ok +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_not_supported +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_not_supported ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_compat +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_compat ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_on_reset +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_on_reset ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_172_volume_connectors_post_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_172_volume_connectors_post_admin ... ok +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_uefi +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_uefi ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_124_portgroups_portgroup_ident_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_124_portgroups_portgroup_ident_patch_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_completed +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_completed ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_failure +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_failure ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2 +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2 ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_155_lessee_admin_can_change_provision_state +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_155_lessee_admin_can_change_provision_state ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_observer ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on ... ok +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2_on_reset +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2_on_reset ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_uefi +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_uefi ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_noop +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_noop ... ok +ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_173_volume_connectors_post_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_173_volume_connectors_post_member ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_3 +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_3 ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_instance_ramdisk +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_instance_ramdisk ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_floppy_image +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_floppy_image ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_125_portgroups_portgroup_ident_patch_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_125_portgroups_portgroup_ident_patch_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_156_lessee_manager_can_change_provision_state +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_156_lessee_manager_can_change_provision_state ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_4 +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_4 ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_220_drivers_vendor_passthru_methods_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_220_drivers_vendor_passthru_methods_get_admin ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_unrescuing +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_unrescuing ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_iso_image +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_iso_image ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7804819f-f572-4fd8-bc88-de45fced44f9 +Openstack-Request-Id: req-b822a6ee-ea5a-4915-aa9b-8748e096d294 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7804819f-f572-4fd8-bc88-de45fced44f9 +Openstack-Request-Id: req-b822a6ee-ea5a-4915-aa9b-8748e096d294 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35455,46 +34365,46 @@ GET: /v1/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cffb46e4-3da6-4ba3-bee3-05b5f2724c68 +Openstack-Request-Id: req-4af3140c-1e24-4a48-9030-74c870be1fce X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cffb46e4-3da6-4ba3-bee3-05b5f2724c68 +Openstack-Request-Id: req-4af3140c-1e24-4a48-9030-74c870be1fce X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]} API ACL Testing Path get /v1/volume/connectors GET: /v1/volume/connectors {} -GOT:Response: 200 OK +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0237f1fb-d31f-4ae5-89af-e1859764135d +Openstack-Request-Id: req-6c2c15bf-3c8a-435a-8020-234f831e72aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0237f1fb-d31f-4ae5-89af-e1859764135d +Openstack-Request-Id: req-6c2c15bf-3c8a-435a-8020-234f831e72aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} API ACL Testing Path get /v1/volume/connectors GET: /v1/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9c69c163-e219-4634-b27f-cdf12cd978db +Openstack-Request-Id: req-84ad709b-2f72-4cc2-9510-b68cdb617ffd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9c69c163-e219-4634-b27f-cdf12cd978db +Openstack-Request-Id: req-84ad709b-2f72-4cc2-9510-b68cdb617ffd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35503,103 +34413,253 @@ POST: /v1/volume/connectors {'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/29a8d637-7a94-49c9-a213-04b5f3cb510a -Openstack-Request-Id: req-6daf9618-e338-4c8a-b6d2-47b7abb4c176 +Location: http://localhost/v1/volume/connectors/d0fb6511-deb7-4b32-990b-d5beb2de5b82 +Openstack-Request-Id: req-272dc244-f2c1-4a4c-9739-4b877ac18a89 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "29a8d637-7a94-49c9-a213-04b5f3cb510a", "created_at": "2025-02-07T21:32:38.401398+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/29a8d637-7a94-49c9-a213-04b5f3cb510a", "rel": "self"}, {"href": "http://localhost/volume/connectors/29a8d637-7a94-49c9-a213-04b5f3cb510a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +{"uuid": "d0fb6511-deb7-4b32-990b-d5beb2de5b82", "created_at": "2024-01-06T15:35:26.061390+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/d0fb6511-deb7-4b32-990b-d5beb2de5b82", "rel": "self"}, {"href": "http://localhost/volume/connectors/d0fb6511-deb7-4b32-990b-d5beb2de5b82", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/connectors/29a8d637-7a94-49c9-a213-04b5f3cb510a -Openstack-Request-Id: req-6daf9618-e338-4c8a-b6d2-47b7abb4c176 +Location: http://localhost/v1/volume/connectors/d0fb6511-deb7-4b32-990b-d5beb2de5b82 +Openstack-Request-Id: req-272dc244-f2c1-4a4c-9739-4b877ac18a89 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "29a8d637-7a94-49c9-a213-04b5f3cb510a", "created_at": "2025-02-07T21:32:38.401398+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/29a8d637-7a94-49c9-a213-04b5f3cb510a", "rel": "self"}, {"href": "http://localhost/volume/connectors/29a8d637-7a94-49c9-a213-04b5f3cb510a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +{"uuid": "d0fb6511-deb7-4b32-990b-d5beb2de5b82", "created_at": "2024-01-06T15:35:26.061390+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/d0fb6511-deb7-4b32-990b-d5beb2de5b82", "rel": "self"}, {"href": "http://localhost/volume/connectors/d0fb6511-deb7-4b32-990b-d5beb2de5b82", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} API ACL Testing Path post /v1/volume/connectors POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} -GOT:Response: 201 Created +GOT:Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/volume/connectors/ebe4a969-65c3-4d75-b441-bfd91a986f02 -Openstack-Request-Id: req-77765f71-bf12-4262-8c9b-065a073be916 +Openstack-Request-Id: req-0cd5a227-7bd2-4760-a3ee-26c0f32daee4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ebe4a969-65c3-4d75-b441-bfd91a986f02", "created_at": "2025-02-07T21:32:40.422085+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/ebe4a969-65c3-4d75-b441-bfd91a986f02", "rel": "self"}, {"href": "http://localhost/volume/connectors/ebe4a969-65c3-4d75-b441-bfd91a986f02", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_173_volume_connectors_post_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_173_volume_connectors_post_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_078_nodes_vendor_passthru_put_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_078_nodes_vendor_passthru_put_observer ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_155_lessee_admin_can_change_provision_state -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_155_lessee_admin_can_change_provision_state ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_220_drivers_vendor_passthru_methods_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_220_drivers_vendor_passthru_methods_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_174_volume_connectors_post_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_174_volume_connectors_post_reader ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_079_nodes_vendor_passthru_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_079_nodes_vendor_passthru_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_156_lessee_manager_can_change_provision_state -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_156_lessee_manager_can_change_provision_state ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_175_volume_volume_connector_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_175_volume_volume_connector_id_get_admin ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_080_nodes_vendor_passthru_delete_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_080_nodes_vendor_passthru_delete_member ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-0cd5a227-7bd2-4760-a3ee-26c0f32daee4 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/volume/connectors +POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_174_volume_connectors_post_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_174_volume_connectors_post_observer ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5a +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5a ... ok +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-2817e4b2-1b25-4d29-b93d-4dc84bbd972e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:24.195530+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-760badae-4804-4160-a103-92c062837f70 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:24.953837+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-760badae-4804-4160-a103-92c062837f70 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:24.953837+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-2986443d-9088-4e4a-a397-83d98a2a183e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:25.375048+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-2986443d-9088-4e4a-a397-83d98a2a183e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:25.375048+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} +API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-bbc1178d-3579-4ea9-81fe-544da00ebada +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-bbc1178d-3579-4ea9-81fe-544da00ebada +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-91781f0b-7c0d-44b6-b292-3b8f2f535e68 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-91781f0b-7c0d-44b6-b292-3b8f2f535e68 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-3e95da23-11a0-4620-9722-ba0b77b349b3 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_tear_down_cleaning +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_tear_down_cleaning ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_126_portgroups_portgroup_ident_patch_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_126_portgroups_portgroup_ident_patch_reader ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5b +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5b ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail_no_change +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail_no_change ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_157_lessee_member_cannot_change_provision_state ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_157_lessee_member_cannot_change_provision_state ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_176_volume_volume_connector_id_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_176_volume_volume_connector_id_get_member ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_081_nodes_vendor_passthru_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_081_nodes_vendor_passthru_delete_observer ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_member ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso_user_supplied +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso_user_supplied ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_6 +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_6 ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_175_volume_volume_connector_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_175_volume_volume_connector_id_get_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistence_fallback +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistence_fallback ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_interface_type +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_interface_type ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_158_third_party_admin_cannot_change_provision_state ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_158_third_party_admin_cannot_change_provision_state ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_177_volume_volume_connector_id_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_177_volume_volume_connector_id_get_reader ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_082_nodes_traits_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_082_nodes_traits_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_223_drivers_vendor_passthru_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_223_drivers_vendor_passthru_get_admin ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_calls_boot_validate +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_calls_boot_validate ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_127_portgroups_portgroup_ident_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_127_portgroups_portgroup_ident_delete_admin ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_immediate +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_immediate ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_observer ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_interface_mismatch +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_interface_mismatch ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_176_volume_volume_connector_id_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_176_volume_volume_connector_id_get_member ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_no_change +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_no_change ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_binary_url +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_binary_url ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_on_reset +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_on_reset ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_128_portgroups_portgroup_ident_delete_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_128_portgroups_portgroup_ident_delete_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_159_owner_admin_can_set_raid_config ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_159_owner_admin_can_set_raid_config ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_with_boot_iso +ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_with_boot_iso ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_vendor +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_vendor ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_get_physical_disks +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_get_physical_disks ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_url +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_url ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_223_drivers_vendor_passthru_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_223_drivers_vendor_passthru_get_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase_ilo_error +ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase_ilo_error ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_loading_error +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_loading_error ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_177_volume_volume_connector_id_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_177_volume_volume_connector_id_get_observer ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_129_portgroups_portgroup_ident_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_129_portgroups_portgroup_ident_delete_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_160_owner_manager_can_set_raid_config +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_160_owner_manager_can_set_raid_config ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_update_raid_config_missing_raid_type +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_update_raid_config_missing_raid_type ... ok API ACL Testing Path get /v1/drivers/fake-driverz GET: /v1/drivers/fake-driverz {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-0fcc32a3-7ac2-42ce-b156-e1e1c57c9618 +Openstack-Request-Id: req-06f551df-2563-44ce-98da-a56b2a7c2f2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35608,7 +34668,7 @@ GET: /v1/drivers/fake-driverz {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-2682efbf-03fe-4274-9d1b-274ff92cd839 +Openstack-Request-Id: req-a15148ed-7710-4ac7-9374-84eb3bc1c69b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35617,7 +34677,7 @@ GET: /v1/drivers/fake-driverz {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-e1e29fb8-3a1c-4019-bd16-dd830136db18 +Openstack-Request-Id: req-fb45db17-24d5-4385-af32-161a263c3c84 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35626,7 +34686,7 @@ GET: /v1/drivers/fake-driverz/properties {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-ff0f26e8-9e58-4b6b-b7a9-3864e0ea7b59 +Openstack-Request-Id: req-c3114b9f-6057-4fe5-a516-5250530e827d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35635,7 +34695,7 @@ GET: /v1/drivers/fake-driverz/properties {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-53d087df-ce31-4fe1-a5e1-d082744c5205 +Openstack-Request-Id: req-e2fe31e7-1b87-4fe0-8908-7d6513166e68 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35644,7 +34704,7 @@ GET: /v1/drivers/fake-driverz/properties {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-82ef6265-4baf-4e11-ac8e-1c9413fad0a6 +Openstack-Request-Id: req-5eb97ea1-fd55-4622-b420-52ae7769ad39 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35653,7 +34713,7 @@ GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-a1210c8e-0f49-4ac1-a534-7bf0fdf60039 +Openstack-Request-Id: req-ac0f1115-1340-4b0d-bba1-e767943dbc2f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35662,7 +34722,7 @@ GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-38ed6e45-5a34-4c90-af97-643812f97453 +Openstack-Request-Id: req-344419f3-47c8-418b-b714-fa1162ba5af5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35671,7 +34731,7 @@ GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-69b6ae25-8a29-4c2d-b5c9-30b718231044 +Openstack-Request-Id: req-d3e36f56-b7dc-4eb1-8d9d-bf80249db724 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35680,7 +34740,7 @@ GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-42642186-2c9c-435a-b460-0e5a85dab966 +Openstack-Request-Id: req-2f5387ce-8d4b-4497-b4a9-3a4c24b022c3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35689,7 +34749,7 @@ GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-1659d83b-d31b-4eb1-82d6-fd71a4589be6 +Openstack-Request-Id: req-81a1ee07-ae6e-474f-b1f3-314953edb5d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35698,7 +34758,7 @@ GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-c40f4ef1-dac0-4986-8c00-1edcf0bbb43a +Openstack-Request-Id: req-ded9e695-544e-4cb8-a177-147dbbcb6eb1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35707,185 +34767,276 @@ GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-ca0d233d-d9b1-4328-a85e-1c01ce49a052 +Openstack-Request-Id: req-08a1f936-752f-417c-be36-442f92012d4e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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}"} API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset ... ok -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-68c51c58-6ae4-44a0-a825-5dccb5979bf9 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-68c51c58-6ae4-44a0-a825-5dccb5979bf9 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_224_drivers_vendor_passthru_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_224_drivers_vendor_passthru_get_member ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso_vendor_prefix +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso_vendor_prefix ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_178_volume_volume_connector_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_178_volume_volume_connector_id_patch_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config_scsi +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config_scsi ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_unsupported +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_unsupported ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_130_nodes_portgroups_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_130_nodes_portgroups_get_admin ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-2ec40ac6-1713-4fba-9e38-13ce5443a4ee +Openstack-Request-Id: req-034aaf90-229f-4e9f-8a45-2069bfa0e9fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-2ec40ac6-1713-4fba-9e38-13ce5443a4ee +Openstack-Request-Id: req-034aaf90-229f-4e9f-8a45-2069bfa0e9fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None -GOT:Response: 404 Not Found +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision {'target': 'deploy'} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-49a75a76-04a4-4bc7-8753-0d3afef72b6e +Openstack-Request-Id: req-d9c98951-758d-4568-b51f-4044a48cd3c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-49a75a76-04a4-4bc7-8753-0d3afef72b6e +Openstack-Request-Id: req-d9c98951-758d-4568-b51f-4044a48cd3c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision {'target': 'deploy'} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-eead8606-6524-412d-9547-bdec35ae8a53 +Openstack-Request-Id: req-094b4b95-accc-46ea-aca3-89f0363f668f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-eead8606-6524-412d-9547-bdec35ae8a53 +Openstack-Request-Id: req-094b4b95-accc-46ea-aca3-89f0363f668f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision {'target': 'deploy'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-353ef469-96c0-4ee9-ac29-8b556244f2e1 +Openstack-Request-Id: req-fddc6305-1fa1-42d9-b8e9-c3fa6c372e0c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-353ef469-96c0-4ee9-ac29-8b556244f2e1 +Openstack-Request-Id: req-fddc6305-1fa1-42d9-b8e9-c3fa6c372e0c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -GOT:Response: 404 Not Found +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision {'target': 'deploy'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c989da7c-5ab2-47a7-abd2-66e7f1339e29 +Openstack-Request-Id: req-65094de0-573e-437c-ab06-5aaae0472cf0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c989da7c-5ab2-47a7-abd2-66e7f1339e29 +Openstack-Request-Id: req-65094de0-573e-437c-ab06-5aaae0472cf0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision {'target': 'deploy'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b4cd598c-138b-461c-bdf4-cf885ebb22e1 +Openstack-Request-Id: req-f4e19e7c-23d2-41c0-8de3-a76332f9e6f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b4cd598c-138b-461c-bdf4-cf885ebb22e1 +Openstack-Request-Id: req-f4e19e7c-23d2-41c0-8de3-a76332f9e6f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/raid +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/raid {'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-366cc3de-63e8-462b-a0b5-f88a3a00f06b +Openstack-Request-Id: req-4699f559-9056-4a94-aca7-87cbed74c466 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"traits": ["trait1"]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-366cc3de-63e8-462b-a0b5-f88a3a00f06b +Openstack-Request-Id: req-4699f559-9056-4a94-aca7-87cbed74c466 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"traits": ["trait1"]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/raid +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/raid {'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-6707fe38-35a5-45ed-bdc3-2584e4af5f31 +Openstack-Request-Id: req-5754c44b-9e59-4fa0-a2b5-5857270748c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_083_nodes_traits_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_083_nodes_traits_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_178_volume_volume_connector_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_178_volume_volume_connector_id_patch_admin ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_224_drivers_vendor_passthru_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_224_drivers_vendor_passthru_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_160_owner_manager_can_set_raid_config -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_160_owner_manager_can_set_raid_config ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_084_nodes_traits_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_084_nodes_traits_get_observer ... ok -ACL Test GOT Response: 201 Created +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Location: http://localhost/v1/volume/connectors/ebe4a969-65c3-4d75-b441-bfd91a986f02 -Openstack-Request-Id: req-77765f71-bf12-4262-8c9b-065a073be916 +Openstack-Request-Id: req-5754c44b-9e59-4fa0-a2b5-5857270748c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ebe4a969-65c3-4d75-b441-bfd91a986f02", "created_at": "2025-02-07T21:32:40.422085+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/ebe4a969-65c3-4d75-b441-bfd91a986f02", "rel": "self"}, {"href": "http://localhost/volume/connectors/ebe4a969-65c3-4d75-b441-bfd91a986f02", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -API ACL Testing Path post /v1/volume/connectors -POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_161_lessee_admin_cannot_set_raid_config +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_161_lessee_admin_cannot_set_raid_config ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default ... ok +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_volume_create_error_handler +ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_volume_create_error_handler ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_external_ip +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_external_ip ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_missing ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_225_drivers_vendor_passthru_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_225_drivers_vendor_passthru_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_179_volume_volume_connector_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_179_volume_volume_connector_id_patch_member ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_network_data +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_network_data ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_set ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_131_nodes_portgroups_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_131_nodes_portgroups_get_member ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_162_lessee_manager_cannot_set_raid_config +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_162_lessee_manager_cannot_set_raid_config ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_agent_token_required +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_agent_token_required ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_tls +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_tls ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_fails +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_fails ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_default ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_incorrect +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_incorrect ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_226_drivers_vendor_passthru_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_226_drivers_vendor_passthru_post_admin ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_132_nodes_portgroups_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_132_nodes_portgroups_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_180_volume_volume_connector_id_patch_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_180_volume_volume_connector_id_patch_observer ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_remove ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_163_owner_member_can_set_raid_config +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_163_owner_member_can_set_raid_config ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_no_change +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_no_change ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_file +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_file ... ok GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4d072603-b1a4-4c37-be97-68d4d8d55ca6 +Openstack-Request-Id: req-df4c8d25-1c48-4973-8870-a784fd7485f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4d072603-b1a4-4c37-be97-68d4d8d55ca6 +Openstack-Request-Id: req-df4c8d25-1c48-4973-8870-a784fd7485f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -35894,865 +35045,1089 @@ GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6d4ef656-51c4-45ea-96cd-5364e1b9b736 +Openstack-Request-Id: req-d0ab5977-88e3-44ac-8ef5-43d3815a880f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:32:44.086204+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:27.522229+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"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6d4ef656-51c4-45ea-96cd-5364e1b9b736 +Openstack-Request-Id: req-d0ab5977-88e3-44ac-8ef5-43d3815a880f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:32:44.086204+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:27.522229+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"} API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 200 OK +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ba508cbb-cc3e-40f2-8891-9291c03c79c5 +Openstack-Request-Id: req-7e3e018f-6d02-454f-b409-511526b95a4d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:32:46.251752+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"} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ba508cbb-cc3e-40f2-8891-9291c03c79c5 +Openstack-Request-Id: req-7e3e018f-6d02-454f-b409-511526b95a4d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:32:46.251752+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"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7d09cb4d-90f7-48f4-8423-3fc54dd17bf1 +Openstack-Request-Id: req-5c4045a6-90ff-47e1-94d8-f298c76b185e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:32:48.364186+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:28.627157+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"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7d09cb4d-90f7-48f4-8423-3fc54dd17bf1 +Openstack-Request-Id: req-5c4045a6-90ff-47e1-94d8-f298c76b185e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:32:48.364186+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:28.627157+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"} API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c43dfcc4-cac7-4fd5-a033-cf290f0965a9 +Openstack-Request-Id: req-de9a9c38-251d-4e9f-8ab1-c79c197c6ece X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c43dfcc4-cac7-4fd5-a033-cf290f0965a9 +Openstack-Request-Id: req-de9a9c38-251d-4e9f-8ab1-c79c197c6ece X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 503 Service Unavailable +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9d54ee52-8621-4859-8a35-503ce56e9b27 +Openstack-Request-Id: req-7d59a5a4-1392-4c5c-8461-e3fb17329a1a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state ... ok -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c6ddbef4-f547-4dc1-819b-25620f9a3620 +Openstack-Request-Id: req-7d59a5a4-1392-4c5c-8461-e3fb17329a1a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c6ddbef4-f547-4dc1-819b-25620f9a3620 +Openstack-Request-Id: req-417f18dd-3806-4d06-9e3c-92c45d4ef36f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision {'target': 'deploy'} -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cf858a48-175f-4e59-bf82-981a7d2bdce0 +Openstack-Request-Id: req-417f18dd-3806-4d06-9e3c-92c45d4ef36f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set ... ok +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cf858a48-175f-4e59-bf82-981a7d2bdce0 +Openstack-Request-Id: req-3e95da23-11a0-4620-9722-ba0b77b349b3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision {'target': 'deploy'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0a1f3d66-de09-4af0-a7d8-31e2945d5bb0 +Openstack-Request-Id: req-48b101ad-0140-4309-830e-3cccc4adcc53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0a1f3d66-de09-4af0-a7d8-31e2945d5bb0 +Openstack-Request-Id: req-48b101ad-0140-4309-830e-3cccc4adcc53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision {'target': 'deploy'} -GOT:Response: 503 Service Unavailable +API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-22689dda-0f34-4143-ae71-0dccb37c5eb4 +Openstack-Request-Id: req-8ec27193-0ddc-441b-8acb-e0fbb69a8619 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-22689dda-0f34-4143-ae71-0dccb37c5eb4 +Openstack-Request-Id: req-8ec27193-0ddc-441b-8acb-e0fbb69a8619 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/provision {'target': 'deploy'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1fdda0d7-1f6c-4ddc-92dd-9bcc1cee0f63 +Openstack-Request-Id: req-b3410e85-b706-4d51-a77d-2e026feef941 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1fdda0d7-1f6c-4ddc-92dd-9bcc1cee0f63 +Openstack-Request-Id: req-b3410e85-b706-4d51-a77d-2e026feef941 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/provision {'target': 'deploy'} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7f48b5cc-a64a-496a-924a-1c40ffa8f1ba +Openstack-Request-Id: req-7942725d-3e9e-4ecc-9f18-a341fa03fa85 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7f48b5cc-a64a-496a-924a-1c40ffa8f1ba +Openstack-Request-Id: req-7942725d-3e9e-4ecc-9f18-a341fa03fa85 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/raid -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} -GOT:Response: 503 Service Unavailable +{"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"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-10e35a2b-ef8d-46d3-94f1-99dfefa055b6 +Openstack-Request-Id: req-549accb4-2294-4e09-a974-21afaae03117 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-10e35a2b-ef8d-46d3-94f1-99dfefa055b6 +Openstack-Request-Id: req-549accb4-2294-4e09-a974-21afaae03117 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/raid -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} -GOT:Response: 503 Service Unavailable +{"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"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4f7ab7d8-20c4-42e2-ad66-bbd4f4c4588c +Openstack-Request-Id: req-792abc0a-2932-40fc-942f-7ac200bb18b4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4f7ab7d8-20c4-42e2-ad66-bbd4f4c4588c +Openstack-Request-Id: req-792abc0a-2932-40fc-942f-7ac200bb18b4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_179_volume_volume_connector_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_179_volume_volume_connector_id_patch_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_161_lessee_admin_cannot_set_raid_config -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_161_lessee_admin_cannot_set_raid_config ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_225_drivers_vendor_passthru_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_225_drivers_vendor_passthru_get_observer ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_085_nodes_traits_put_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_085_nodes_traits_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_180_volume_volume_connector_id_patch_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_180_volume_volume_connector_id_patch_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_162_lessee_manager_cannot_set_raid_config -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_162_lessee_manager_cannot_set_raid_config ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_226_drivers_vendor_passthru_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_226_drivers_vendor_passthru_post_admin ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_086_nodes_traits_put_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_086_nodes_traits_put_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_181_volume_volume_connector_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_181_volume_volume_connector_id_delete_admin ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_163_owner_member_can_set_raid_config -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_163_owner_member_can_set_raid_config ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_227_drivers_vendor_passthru_post_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_227_drivers_vendor_passthru_post_member ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_087_nodes_traits_put_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_087_nodes_traits_put_observer ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off ... ok +{"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"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_unknown +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_unknown ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_133_nodes_portgroups_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_133_nodes_portgroups_detail_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_164_lessee_member_cannot_set_raid_config ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_164_lessee_member_cannot_set_raid_config ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_182_volume_volume_connector_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_182_volume_volume_connector_id_delete_member ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_228_drivers_vendor_passthru_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_228_drivers_vendor_passthru_post_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_088_nodes_traits_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_088_nodes_traits_delete_admin ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_raritan_pdu2_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_raritan_pdu2_snmp_objects ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_181_volume_volume_connector_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_181_volume_volume_connector_id_delete_admin ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_prefix +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_prefix ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_227_drivers_vendor_passthru_post_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_227_drivers_vendor_passthru_post_member ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_not_implemented +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_not_implemented ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing ... ok +This is bad/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_large_url +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_large_url ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_165_third_party_admin_cannot_set_raid_config ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_165_third_party_admin_cannot_set_raid_config ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_183_volume_volume_connector_id_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_183_volume_volume_connector_id_delete_reader ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry3_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry3_snmp_objects ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry4_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry4_snmp_objects ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_229_drivers_vendor_passthru_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_229_drivers_vendor_passthru_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_089_nodes_traits_delete_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_089_nodes_traits_delete_member ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_134_nodes_portgroups_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_134_nodes_portgroups_detail_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_182_volume_volume_connector_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_182_volume_volume_connector_id_delete_member ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_228_drivers_vendor_passthru_post_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_228_drivers_vendor_passthru_post_observer ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_config_external_http_url +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_config_external_http_url ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_raritan_pdu2 +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_raritan_pdu2 ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_linkfail +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_linkfail ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_invalid_args +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_invalid_args ... ok +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout +ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_node_external_http_url +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_node_external_http_url ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_183_volume_volume_connector_id_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_183_volume_volume_connector_id_delete_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_135_nodes_portgroups_detail_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_135_nodes_portgroups_detail_get_reader ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_166_owner_admin_can_get_console ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_166_owner_admin_can_get_console ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_184_volume_targets_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_184_volume_targets_get_admin ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_090_nodes_traits_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_090_nodes_traits_delete_observer ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_230_drivers_vendor_passthru_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_230_drivers_vendor_passthru_put_member ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_raises_memory_guard +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_raises_memory_guard ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_229_drivers_vendor_passthru_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_229_drivers_vendor_passthru_put_admin ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove ... ok +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_with_external_ip +ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_with_external_ip ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry3 +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry3 ... ok +ironic.tests.unit.drivers.modules.test_image_utils.IloImageHandlerTestCase.test_ilo_kernel_param_config +ironic.tests.unit.drivers.modules.test_image_utils.IloImageHandlerTestCase.test_ilo_kernel_param_config ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry4 +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry4 ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_184_volume_targets_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_184_volume_targets_get_admin ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_136_ports_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_136_ports_get_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage_both +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage_both ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_167_owner_manager_can_get_console ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_167_owner_manager_can_get_console ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_185_volume_targets_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_185_volume_targets_get_member ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_091_nodes_traits_trait_put_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_091_nodes_traits_trait_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_231_drivers_vendor_passthru_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_231_drivers_vendor_passthru_put_observer ... ok -ACL Test GOT Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-9d54ee52-8621-4859-8a35-503ce56e9b27 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-248065a2-0dbb-4e52-ae2e-9689f5fab17c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-248065a2-0dbb-4e52-ae2e-9689f5fab17c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-3eb65672-9655-428e-ad4c-a434bb46030b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-3eb65672-9655-428e-ad4c-a434bb46030b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 503 Service Unavailable +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_230_drivers_vendor_passthru_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_230_drivers_vendor_passthru_put_member ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-450d0f40-6e69-4ac0-9671-bdd2efff6a57 +Openstack-Request-Id: req-2ba771b2-a7c1-4b86-aae4-7fcebdc87dec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:30.549421+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-450d0f40-6e69-4ac0-9671-bdd2efff6a57 +Openstack-Request-Id: req-2ba771b2-a7c1-4b86-aae4-7fcebdc87dec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 403 Forbidden +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:30.549421+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9fcea0ab-6d27-4104-9ee2-1fc1a0eb2cae +Openstack-Request-Id: req-40853e35-8442-4437-9433-112edfbc9368 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:31.060856+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9fcea0ab-6d27-4104-9ee2-1fc1a0eb2cae +Openstack-Request-Id: req-40853e35-8442-4437-9433-112edfbc9368 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/targets -GET: /v1/volume/targets {} +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:31.060856+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5ad14f14-5567-430f-96cc-b85b9dde40e4 +Openstack-Request-Id: req-dd82a533-c362-4939-96d8-f2b0c2487860 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:31.481922+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5ad14f14-5567-430f-96cc-b85b9dde40e4 +Openstack-Request-Id: req-dd82a533-c362-4939-96d8-f2b0c2487860 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/volume/targets -GET: /v1/volume/targets {} +{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:35:31.481922+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/ports +GET: /v1/ports {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6e90acf1-cb7d-4be2-8638-3839e5fe7a81 +Openstack-Request-Id: req-4fa6331c-7ac7-4680-9813-ea86fa5fb39a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} +{"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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6e90acf1-cb7d-4be2-8638-3839e5fe7a81 +Openstack-Request-Id: req-4fa6331c-7ac7-4680-9813-ea86fa5fb39a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/volume/targets -GET: /v1/volume/targets {} -GOT:Response: 200 OK +{"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"}]}]} +API ACL Testing Path get /v1/ports +GET: /v1/ports {} +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_185_volume_targets_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_185_volume_targets_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_137_ports_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_137_ports_get_member ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_missing ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_168_lessee_admin_cannot_get_console +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_168_lessee_admin_cannot_get_console ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_boot_clean_up_failed +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_boot_clean_up_failed ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service_error +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service_error ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_231_drivers_vendor_passthru_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_231_drivers_vendor_passthru_put_observer ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports_portgroup +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports_portgroup ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_set ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off ... ok +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1a29da90-b826-47fe-b0ae-6d19b11d56ba +Openstack-Request-Id: req-2fe44ea6-6f14-41f4-b19e-d4f6037b6200 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_vertivgeist_pdu_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_vertivgeist_pdu_snmp_objects ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_168_lessee_admin_cannot_get_console -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_168_lessee_admin_cannot_get_console ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_186_volume_targets_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_186_volume_targets_get_reader ... ok -ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl -ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl ... ok -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6707fe38-35a5-45ed-bdc3-2584e4af5f31 +Openstack-Request-Id: req-2fe44ea6-6f14-41f4-b19e-d4f6037b6200 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid {'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-c750f8b6-800c-4416-b848-3d1c918593e9 +Openstack-Request-Id: req-8c081728-cf1e-45b1-8421-1f1dc4fa37c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"traits": ["trait1"]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c750f8b6-800c-4416-b848-3d1c918593e9 +Openstack-Request-Id: req-8c081728-cf1e-45b1-8421-1f1dc4fa37c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"traits": ["trait1"]} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid {'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-75dd7301-f1b4-4d4f-9596-5aeb443c3d6a +Openstack-Request-Id: req-9fd5270d-149c-471c-8b86-c726357fe302 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-75dd7301-f1b4-4d4f-9596-5aeb443c3d6a +Openstack-Request-Id: req-9fd5270d-149c-471c-8b86-c726357fe302 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} -GOT:Response: 404 Not Found +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid {'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-cef23dce-fca5-4d8f-a84a-d760f4817ac3 +Openstack-Request-Id: req-bf2ba3ce-587d-4481-aa58-5d2c22010e14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cef23dce-fca5-4d8f-a84a-d760f4817ac3 +Openstack-Request-Id: req-bf2ba3ce-587d-4481-aa58-5d2c22010e14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid {'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-5a7290ce-2a4c-4b93-9f1a-94578b088b42 +Openstack-Request-Id: req-1f81be0e-3e7a-4c3c-9b9b-a025ae74bee0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5a7290ce-2a4c-4b93-9f1a-94578b088b42 +Openstack-Request-Id: req-1f81be0e-3e7a-4c3c-9b9b-a025ae74bee0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ed3bd97a-8778-4132-9165-98854761454f +Openstack-Request-Id: req-7e920f7e-9a3a-43e7-ac3a-bdcd4863fddb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ed3bd97a-8778-4132-9165-98854761454f +Openstack-Request-Id: req-7e920f7e-9a3a-43e7-ac3a-bdcd4863fddb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -GOT:Response: 404 Not Found +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b80b7f0c-b5d9-46fa-b925-5534e0b4a3c5 +Openstack-Request-Id: req-ec90ec58-8325-4839-be45-8bebdea8a3ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b80b7f0c-b5d9-46fa-b925-5534e0b4a3c5 +Openstack-Request-Id: req-ec90ec58-8325-4839-be45-8bebdea8a3ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e987ed13-32e1-4d39-8bc9-56fa45ece0d5 +Openstack-Request-Id: req-10d9f859-6477-4aa1-a6b8-31195a0f85c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e987ed13-32e1-4d39-8bc9-56fa45ece0d5 +Openstack-Request-Id: req-10d9f859-6477-4aa1-a6b8-31195a0f85c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor_error +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor_error ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error_managed +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error_managed ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_default ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_186_volume_targets_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_186_volume_targets_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin ... skipped 'not updated for scope testing' +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_138_ports_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_138_ports_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_169_lessee_manager_cannot_get_console +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_169_lessee_manager_cannot_get_console ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error_managed_no_power_off +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error_managed_no_power_off ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service_error +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service_error ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_remove ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_network_clean_up_failed +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_network_clean_up_failed ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_233_drivers_vendor_passthru_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_233_drivers_vendor_passthru_delete_observer ... skipped 'not updated for scope testing' +API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-1dc2f9fe-e0be-4750-9ee2-8dfd91a7d390 +Openstack-Request-Id: req-1337107e-f993-46ab-bd13-e1f7cd023faa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-1dc2f9fe-e0be-4750-9ee2-8dfd91a7d390 +Openstack-Request-Id: req-1337107e-f993-46ab-bd13-e1f7cd023faa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_092_nodes_traits_trait_put_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_092_nodes_traits_trait_put_member ... ok -GOT:Response: 403 Forbidden +API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-51e3dac1-5070-426f-bb7f-ed232bc74104 +Openstack-Request-Id: req-011e70bd-ca83-4479-986b-6de542a4d43a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-51e3dac1-5070-426f-bb7f-ed232bc74104 +Openstack-Request-Id: req-011e70bd-ca83-4479-986b-6de542a4d43a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-73ed070b-e0ab-492d-854f-b68b908ded1b +Openstack-Request-Id: req-0fdda6e3-8956-4e21-ab26-e4f54b6d0de0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-73ed070b-e0ab-492d-854f-b68b908ded1b +Openstack-Request-Id: req-0fdda6e3-8956-4e21-ab26-e4f54b6d0de0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/targets +GET: /v1/volume/targets {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d595914e-5c29-46a3-af90-6e390c0747e1 +Openstack-Request-Id: req-f64cd3be-1d02-4bad-812c-9703d6d5cb2f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d595914e-5c29-46a3-af90-6e390c0747e1 +Openstack-Request-Id: req-f64cd3be-1d02-4bad-812c-9703d6d5cb2f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} +{"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"}]} +API ACL Testing Path get /v1/volume/targets +GET: /v1/volume/targets {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c39ef35c-7afb-4fbb-945c-fb33bf6b6d06 +Openstack-Request-Id: req-1f838bbf-55d4-4b2a-871b-bca06574e10c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c39ef35c-7afb-4fbb-945c-fb33bf6b6d06 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid {'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-b38b5445-daed-4fec-a4e3-0c9c6391927d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-b38b5445-daed-4fec-a4e3-0c9c6391927d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {} -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-e31796af-eeb6-4671-b026-6a999b7fa97a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-e31796af-eeb6-4671-b026-6a999b7fa97a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {} -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-aa61b3f8-5e6b-4806-965a-f55273e13ae4 +Openstack-Request-Id: req-1f838bbf-55d4-4b2a-871b-bca06574e10c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/targets +GET: /v1/volume/targets {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-aa61b3f8-5e6b-4806-965a-f55273e13ae4 +Openstack-Request-Id: req-31c8ceeb-196e-4a7c-a360-ba294b9685a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {} -GOT:Response: 403 Forbidden +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0d4bbeda-d919-4296-ab55-9d7a5b274934 +Openstack-Request-Id: req-31c8ceeb-196e-4a7c-a360-ba294b9685a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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"}]} +API ACL Testing Path post /v1/volume/targets +POST: /v1/volume/targets {'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 -Openstack-Request-Id: req-0d4bbeda-d919-4296-ab55-9d7a5b274934 +Location: http://localhost/v1/volume/targets/18bd0643-c226-42ee-9510-3dcc3ab80623 +Openstack-Request-Id: req-8374c1c7-9c3d-47b5-af84-ba0c884297df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin ... skipped 'not updated for scope testing' -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_169_lessee_manager_cannot_get_console -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_169_lessee_manager_cannot_get_console ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_187_volume_targets_post_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_187_volume_targets_post_admin ... ok -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_233_drivers_vendor_passthru_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_233_drivers_vendor_passthru_delete_observer ... skipped 'not updated for scope testing' -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_093_nodes_traits_trait_put_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_093_nodes_traits_trait_put_observer ... ok -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift ... ok -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown ... ok +{"uuid": "18bd0643-c226-42ee-9510-3dcc3ab80623", "created_at": "2024-01-06T15:35:33.730584+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/18bd0643-c226-42ee-9510-3dcc3ab80623", "rel": "self"}, {"href": "http://localhost/volume/targets/18bd0643-c226-42ee-9510-3dcc3ab80623", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_139_ports_post_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_139_ports_post_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_187_volume_targets_post_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_187_volume_targets_post_admin ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_170_owner_member_can_get_console ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_170_owner_member_can_get_console ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_188_volume_targets_post_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_188_volume_targets_post_member ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network_from_node +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network_from_node ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_234_nodes_bios_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_234_nodes_bios_get_admin ... ok -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label ... ok -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_094_nodes_traits_trait_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_094_nodes_traits_trait_delete_admin ... ok -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_140_ports_post_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_140_ports_post_member ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_188_volume_targets_post_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_188_volume_targets_post_member ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_171_lessee_member_cannot_get_console ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_171_lessee_member_cannot_get_console ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_189_volume_targets_post_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_189_volume_targets_post_reader ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed_no_power_off +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed_no_power_off ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed_no_power_off_on_fast_track +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed_no_power_off_on_fast_track ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_235_nodes_bios_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_235_nodes_bios_get_member ... ok -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_095_nodes_traits_trait_delete_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_095_nodes_traits_trait_delete_member ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_141_ports_post_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_141_ports_post_reader ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_get_node_network_data +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_get_node_network_data ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_189_volume_targets_post_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_189_volume_targets_post_observer ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_custom_params +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_custom_params ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_172_owner_reader_cannot_get_console ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_172_owner_reader_cannot_get_console ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_system_id +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_system_id ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_error +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_error ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_236_nodes_bios_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_236_nodes_bios_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_190_volume_volume_target_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_190_volume_volume_target_id_get_admin ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_096_nodes_traits_trait_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_096_nodes_traits_trait_delete_observer ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_142_ports_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_142_ports_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_vertivgeist_pdu +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_vertivgeist_pdu ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_fast_track +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_fast_track ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_173_lessee_reader_cannot_get_console +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_173_lessee_reader_cannot_get_console ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_190_volume_volume_target_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_190_volume_volume_target_id_get_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_fast_track_via_driver_info +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_fast_track_via_driver_info ... ok +ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args +ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-2d54839d-b147-4649-8b0d-cc43227e2c90 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1a29da90-b826-47fe-b0ae-6d19b11d56ba +Openstack-Request-Id: req-2d54839d-b147-4649-8b0d-cc43227e2c90 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path post /v1/volume/targets -POST: /v1/volume/targets {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': 'test-id'} -GOT:Response: 201 Created +{"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"}]}]} +API ACL Testing Path get /v1/ports +GET: /v1/ports {} +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/volume/targets/5c0fc166-49a1-4648-a3f0-c51a3899f0a8 -Openstack-Request-Id: req-2ad91953-aacb-43a8-8e02-4d87d8da387d +Openstack-Request-Id: req-f14a13f0-683e-4d7d-9551-091fa4491f87 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5c0fc166-49a1-4648-a3f0-c51a3899f0a8", "created_at": "2025-02-07T21:33:10.021755+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5c0fc166-49a1-4648-a3f0-c51a3899f0a8", "rel": "self"}, {"href": "http://localhost/volume/targets/5c0fc166-49a1-4648-a3f0-c51a3899f0a8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -ACL Test GOT Response: 201 Created +{"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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/volume/targets/5c0fc166-49a1-4648-a3f0-c51a3899f0a8 -Openstack-Request-Id: req-2ad91953-aacb-43a8-8e02-4d87d8da387d +Openstack-Request-Id: req-f14a13f0-683e-4d7d-9551-091fa4491f87 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5c0fc166-49a1-4648-a3f0-c51a3899f0a8", "created_at": "2025-02-07T21:33:10.021755+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5c0fc166-49a1-4648-a3f0-c51a3899f0a8", "rel": "self"}, {"href": "http://localhost/volume/targets/5c0fc166-49a1-4648-a3f0-c51a3899f0a8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -API ACL Testing Path post /v1/volume/targets -POST: /v1/volume/targets {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': 'test-id2'} -GOT:Response: 201 Created +{"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"}]}]} +API ACL Testing Path post /v1/ports +POST: /v1/ports {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/volume/targets/b3b46e84-8366-45e6-87a0-3a136ea8c4dc -Openstack-Request-Id: req-03e3cd0e-8a46-4670-b4a9-71a98e64175d +Openstack-Request-Id: req-6f0f2927-f72e-486f-bda8-686cececa0c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b3b46e84-8366-45e6-87a0-3a136ea8c4dc", "created_at": "2025-02-07T21:33:11.887686+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b3b46e84-8366-45e6-87a0-3a136ea8c4dc", "rel": "self"}, {"href": "http://localhost/volume/targets/b3b46e84-8366-45e6-87a0-3a136ea8c4dc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -ACL Test GOT Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/volume/targets/b3b46e84-8366-45e6-87a0-3a136ea8c4dc -Openstack-Request-Id: req-03e3cd0e-8a46-4670-b4a9-71a98e64175d +Openstack-Request-Id: req-6f0f2927-f72e-486f-bda8-686cececa0c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b3b46e84-8366-45e6-87a0-3a136ea8c4dc", "created_at": "2025-02-07T21:33:11.887686+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b3b46e84-8366-45e6-87a0-3a136ea8c4dc", "rel": "self"}, {"href": "http://localhost/volume/targets/b3b46e84-8366-45e6-87a0-3a136ea8c4dc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -API ACL Testing Path post /v1/volume/targets -POST: /v1/volume/targets {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': 'test-id'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/ports +POST: /v1/ports {'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-95920767-4302-442b-bf9a-7d5a924bb0b6 +Openstack-Request-Id: req-2d679d2c-b48d-48ed-bc13-06659d1af869 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-95920767-4302-442b-bf9a-7d5a924bb0b6 +Openstack-Request-Id: req-2d679d2c-b48d-48ed-bc13-06659d1af869 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/ports +POST: /v1/ports {'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-29ecfe9d-3022-48fa-893e-733a448b76dd +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-29ecfe9d-3022-48fa-893e-733a448b76dd +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/ports/detail +GET: /v1/ports/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3426cd24-82c2-4303-a21e-3698e102cb8c +Openstack-Request-Id: req-979910ef-1e47-4f7f-960f-7eeca4bbc053 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:33:15.271070+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"} +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:34.945816+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3426cd24-82c2-4303-a21e-3698e102cb8c +Openstack-Request-Id: req-979910ef-1e47-4f7f-960f-7eeca4bbc053 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:33:15.271070+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"} -API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:34.945816+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +API ACL Testing Path get /v1/ports/detail +GET: /v1/ports/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-98d572d9-9e71-4d74-bd6b-ef951cb160dc +Openstack-Request-Id: req-f5aba0db-7773-4f32-8a36-89b3f562be2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:33:17.344008+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"} -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_173_lessee_reader_cannot_get_console -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_173_lessee_reader_cannot_get_console ... ok +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:35.415994+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_237_nodes_bios_bios_setting_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_237_nodes_bios_bios_setting_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_191_volume_volume_target_id_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_191_volume_volume_target_id_get_member ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_097_nodes_vifs_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_097_nodes_vifs_get_admin ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_143_ports_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_143_ports_detail_get_member ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on ... ok +ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo +ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_ok ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_174_third_party_admin_cannot_get_console ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_174_third_party_admin_cannot_get_console ... ok +ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority +ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_191_volume_volume_target_id_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_191_volume_volume_target_id_get_member ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_with_root_prefix +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_with_root_prefix ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_require_managed_boot +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_require_managed_boot ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects ... ok +ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only +ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_unmanaged_error +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_unmanaged_error ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_144_ports_detail_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_144_ports_detail_get_reader ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_238_nodes_bios_bios_setting_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_238_nodes_bios_bios_setting_get_member ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_192_volume_volume_target_id_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_192_volume_volume_target_id_get_reader ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_098_nodes_vifs_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_098_nodes_vifs_get_member ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off ... ok +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_unmanaged_ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_unmanaged_ok ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on ... ok +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_delete_subscription +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_delete_subscription ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_192_volume_volume_target_id_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_192_volume_volume_target_id_get_observer ... ok +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_175_owner_admin_can_set_console +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_175_owner_admin_can_set_console ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_missing ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_validate_ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_validate_ok ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node ... ok GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-a362202d-1bda-4fb9-b423-8f83361ec978 +Openstack-Request-Id: req-6093fe0a-0ca5-4d2e-b979-a37d09b69c4e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36761,7 +36136,7 @@ GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-ffe99a09-5dde-4b61-8b57-49b6f7f13542 +Openstack-Request-Id: req-a94917d5-f8c0-40e0-8c0f-e7662e8117b4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36770,7 +36145,7 @@ POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-db74aab6-9d2e-469d-ab57-0bce4235efbc +Openstack-Request-Id: req-9217d5fc-e27b-4d9d-baf9-903c3c8c31b4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36779,7 +36154,7 @@ POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-d22815f1-ba00-407f-8a71-b8df969710eb +Openstack-Request-Id: req-b7b1f828-3df9-4fdd-866c-64471175f395 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36788,7 +36163,7 @@ POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-8682727a-e5d4-4d59-bc25-9202096cfc06 +Openstack-Request-Id: req-0e3ab933-e7de-4465-8108-5b79a62c0311 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36797,7 +36172,7 @@ PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-bf6f6870-8e8f-49af-9929-3d9b5629238d +Openstack-Request-Id: req-31b78a30-81fd-461e-8062-394ba9305a34 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36806,7 +36181,7 @@ PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-4d0a7797-7784-4bb5-9b48-4bb745b6f4ae +Openstack-Request-Id: req-f9d85f6d-8835-40d9-9b8e-cecd9514a553 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36815,7 +36190,7 @@ PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-b2a29220-c94e-4d93-8c75-5a6073fc5abe +Openstack-Request-Id: req-c906d8d5-a121-4a8d-a3f7-bd02d2ddc7a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36824,7 +36199,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-afc99544-fde4-4024-a58a-e3baeceafbc2 +Openstack-Request-Id: req-f0ee71e5-1271-4fb1-a387-1122e05ad0f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36833,7 +36208,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3d37bc25-a58a-4df8-b12e-37785e3891ad +Openstack-Request-Id: req-19a40d16-13d1-4e68-9332-b4efd4c9176e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36842,7 +36217,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-450f3258-ee0f-4baf-a866-c73a6d1d88fd +Openstack-Request-Id: req-87b5097c-7de0-4026-a7e3-3077e9dcd9ab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36851,7 +36226,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0c276f82-e4d5-4dca-8045-bfe2a44155a3 +Openstack-Request-Id: req-9abbc380-b4f5-4c9d-83c1-9fe8b168ffb9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36860,7 +36235,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a18c08a6-06c5-4d93-ad67-b474d3da8f8a +Openstack-Request-Id: req-1254c4c4-66e5-4807-b52c-e7edd17399ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -36869,176 +36244,174 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_239_nodes_bios_bios_setting_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_239_nodes_bios_bios_setting_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_175_owner_admin_can_set_console -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_175_owner_admin_can_set_console ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_193_volume_volume_target_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_193_volume_volume_target_id_patch_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_099_nodes_vifs_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_099_nodes_vifs_get_observer ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_176_owner_manager_can_set_console -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_176_owner_manager_can_set_console ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_240_conductors_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_240_conductors_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_194_volume_volume_target_id_patch_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_194_volume_volume_target_id_patch_reader ... ok -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-84f29254-9a9c-4dac-8f00-cb9c942b4869 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_set ... ok +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_validate_require_managed_boot +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_validate_require_managed_boot ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_145_ports_port_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_145_ports_port_id_get_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_all +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_all ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_missing ... ok +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid ... ok +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_cd +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_cd ... ok +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-84f29254-9a9c-4dac-8f00-cb9c942b4869 +Location: http://localhost/v1/volume/targets/18bd0643-c226-42ee-9510-3dcc3ab80623 +Openstack-Request-Id: req-8374c1c7-9c3d-47b5-af84-ba0c884297df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None +{"uuid": "18bd0643-c226-42ee-9510-3dcc3ab80623", "created_at": "2024-01-06T15:35:33.730584+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/18bd0643-c226-42ee-9510-3dcc3ab80623", "rel": "self"}, {"href": "http://localhost/volume/targets/18bd0643-c226-42ee-9510-3dcc3ab80623", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +API ACL Testing Path post /v1/volume/targets +POST: /v1/volume/targets {'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-ebe6c5d7-efe9-444c-949b-9db5489c4c3c +Openstack-Request-Id: req-2f01552c-143a-4f46-86fc-4d4998b9dfc4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ebe6c5d7-efe9-444c-949b-9db5489c4c3c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-1548b72d-1163-415f-9708-7bd8f023372d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-1548b72d-1163-415f-9708-7bd8f023372d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-9419a2cb-7498-4722-bef8-bae313397480 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-9419a2cb-7498-4722-bef8-bae313397480 +Openstack-Request-Id: req-2f01552c-143a-4f46-86fc-4d4998b9dfc4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/volume/targets +POST: /v1/volume/targets {'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-372b96f8-6c6a-4875-a374-f36b4f58f14a +Openstack-Request-Id: req-9f342fc9-a474-4f0a-820a-cb94b75dacc1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-372b96f8-6c6a-4875-a374-f36b4f58f14a +Openstack-Request-Id: req-9f342fc9-a474-4f0a-820a-cb94b75dacc1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b8423f27-e51f-4490-951f-2d391df2770d +Openstack-Request-Id: req-3316b7a2-bb85-409c-80a8-b8fc64f5a1f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:35.105148+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"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b8423f27-e51f-4490-951f-2d391df2770d +Openstack-Request-Id: req-3316b7a2-bb85-409c-80a8-b8fc64f5a1f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:35.105148+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"} +API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-840e9d12-4797-44b8-a52a-d76750fb1665 +Openstack-Request-Id: req-ff5937d4-77d1-4f35-aac6-cc4d708b18d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-840e9d12-4797-44b8-a52a-d76750fb1665 +Openstack-Request-Id: req-ff5937d4-77d1-4f35-aac6-cc4d708b18d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bc19fac9-3ea6-4595-bdbd-0cc430d32937 +Openstack-Request-Id: req-17b55012-31b2-4a6d-ad96-48f8ae7f7df7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:list\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:36.137970+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"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bc19fac9-3ea6-4595-bdbd-0cc430d32937 +Openstack-Request-Id: req-17b55012-31b2-4a6d-ad96-48f8ae7f7df7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:list\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:36.137970+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"} +API ACL Testing Path patch /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-1dc01528-ce9e-4de5-8080-b91605223d80 +Openstack-Request-Id: req-45249cbc-bae4-4e2a-b51c-d41b27229c17 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_100_nodes_vifs_post_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_100_nodes_vifs_post_admin ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_176_owner_manager_can_set_console +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_176_owner_manager_can_set_console ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_193_volume_volume_target_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_193_volume_volume_target_id_patch_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_remove ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection_exc +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection_exc ... ok +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_146_ports_port_id_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_146_ports_port_id_get_member ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_240_conductors_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_240_conductors_get_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default ... ok +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail ... ok GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8139e6b8-2d60-4596-b95c-e11b878089de +Openstack-Request-Id: req-7e98c592-7977-4183-bf16-cb7b461564d2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8139e6b8-2d60-4596-b95c-e11b878089de +Openstack-Request-Id: req-7e98c592-7977-4183-bf16-cb7b461564d2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37047,14 +36420,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cdea713c-3028-4c61-b0b4-ce918724e0fd +Openstack-Request-Id: req-1ae095c4-b452-4bf4-8b10-a11901da2b07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cdea713c-3028-4c61-b0b4-ce918724e0fd +Openstack-Request-Id: req-1ae095c4-b452-4bf4-8b10-a11901da2b07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37063,14 +36436,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4b1c9b27-d968-4125-9199-8f9bc15dc7bd +Openstack-Request-Id: req-9656e745-9d63-4ffd-a8a1-b788382b8ad6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4b1c9b27-d968-4125-9199-8f9bc15dc7bd +Openstack-Request-Id: req-9656e745-9d63-4ffd-a8a1-b788382b8ad6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37079,14 +36452,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1c694f47-099e-4f60-bb02-67a12e846bad +Openstack-Request-Id: req-b0378cf0-97e8-432a-b840-38f48f712665 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1c694f47-099e-4f60-bb02-67a12e846bad +Openstack-Request-Id: req-b0378cf0-97e8-432a-b840-38f48f712665 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37095,14 +36468,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-00767124-06ee-4b00-98f5-2f112ebc2955 +Openstack-Request-Id: req-1d30767b-d7df-42b1-a5cf-9e44a90b9af5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-00767124-06ee-4b00-98f5-2f112ebc2955 +Openstack-Request-Id: req-1d30767b-d7df-42b1-a5cf-9e44a90b9af5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37111,14 +36484,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0c961c64-66b2-4f96-95d6-b12c18cbe86d +Openstack-Request-Id: req-4ccbfb0a-b86e-4382-a3c9-78a81d13fac5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0c961c64-66b2-4f96-95d6-b12c18cbe86d +Openstack-Request-Id: req-4ccbfb0a-b86e-4382-a3c9-78a81d13fac5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37127,14 +36500,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {'enabled': True} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c75b5541-63c1-40dc-a401-5be7bce777ee +Openstack-Request-Id: req-cc16de0c-a606-461d-937d-c653fb82f7c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c75b5541-63c1-40dc-a401-5be7bce777ee +Openstack-Request-Id: req-cc16de0c-a606-461d-937d-c653fb82f7c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37143,119 +36516,371 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {'enabled': True} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b1830ad9-cd3f-4090-8a7b-5f0840d52a90 +Openstack-Request-Id: req-d814f665-62a5-4c4c-b5ac-3fb17c3eb20f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b1830ad9-cd3f-4090-8a7b-5f0840d52a90 +Openstack-Request-Id: req-d814f665-62a5-4c4c-b5ac-3fb17c3eb20f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {'enabled': True} +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on ... ok +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_177_lessee_admin_cannot_set_console ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_177_lessee_admin_cannot_set_console ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none ... ok +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions_empty +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions_empty ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_194_volume_volume_target_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_194_volume_volume_target_id_patch_member ... ok +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-f5aba0db-7773-4f32-8a36-89b3f562be2b +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:35.415994+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +API ACL Testing Path get /v1/ports/detail +GET: /v1/ports/detail {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-cbaf4b82-6848-428a-b744-c3040ee1da29 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:35.906410+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-cbaf4b82-6848-428a-b744-c3040ee1da29 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:35.906410+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-aba34099-2a75-4a00-afe6-462028b64af2 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:36.351873+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-aba34099-2a75-4a00-afe6-462028b64af2 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:36.351873+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-1526c59c-b792-4b3a-9db2-95b719de677c +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:36.904526+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-1526c59c-b792-4b3a-9db2-95b719de677c +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:36.904526+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-2910c338-218e-4c6a-ba0b-fb7cdad86339 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:37.325702+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_147_ports_port_id_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_147_ports_port_id_get_reader ... ok +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok ... ok +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_does_not_exist +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_does_not_exist ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set ... ok +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh +ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_241_conductors_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_241_conductors_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_195_volume_volume_target_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_195_volume_volume_target_id_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_101_nodes_vifs_post_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_101_nodes_vifs_post_member ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off ... ok +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_create +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_create ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_178_lessee_manager_cannot_set_console ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_178_lessee_manager_cannot_set_console ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_195_volume_volume_target_id_patch_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_195_volume_volume_target_id_patch_observer ... ok +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_exists +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_exists ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove ... ok +GOT:{'uuid': 'd10f95f4-e701-4059-9df1-d0ab1563e1eb', 'created_at': '2024-01-06T15:33:14.903056+00:00', 'updated_at': None, 'boot_index': 0, 'extra': {}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/d10f95f4-e701-4059-9df1-d0ab1563e1eb', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d10f95f4-e701-4059-9df1-d0ab1563e1eb', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /volume/targets/d10f95f4-e701-4059-9df1-d0ab1563e1eb {} +GOT:{'uuid': 'd10f95f4-e701-4059-9df1-d0ab1563e1eb', 'created_at': '2024-01-06T15:33:14.903056+00:00', 'updated_at': None, 'boot_index': 0, 'extra': {}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/d10f95f4-e701-4059-9df1-d0ab1563e1eb', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d10f95f4-e701-4059-9df1-d0ab1563e1eb', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GET: /v1/volume/targets {} +GOT:{'targets': [{'uuid': 'd82653a2-75d0-4af6-ad07-cdbcb6ed05be', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/d82653a2-75d0-4af6-ad07-cdbcb6ed05be', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d82653a2-75d0-4af6-ad07-cdbcb6ed05be', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '11d05720-3f95-4a00-bfce-a266821a9c25', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/11d05720-3f95-4a00-bfce-a266821a9c25', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/11d05720-3f95-4a00-bfce-a266821a9c25', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'e482f79d-011c-4c7e-b1d5-1fbb209acd47', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/e482f79d-011c-4c7e-b1d5-1fbb209acd47', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e482f79d-011c-4c7e-b1d5-1fbb209acd47', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'ac22edb7-baf1-4de4-8911-aa8a273ec469', 'boot_index': 3, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/ac22edb7-baf1-4de4-8911-aa8a273ec469', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ac22edb7-baf1-4de4-8911-aa8a273ec469', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '30541202-f314-40f6-9776-46bbfbeee09f', 'boot_index': 4, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/30541202-f314-40f6-9776-46bbfbeee09f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/30541202-f314-40f6-9776-46bbfbeee09f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/volume/targets {} +GOT:{'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'}]} +GET: /v1/volume/targets {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/volume/targets?sort_key=uuid {} +GOT:{'targets': [{'uuid': '1057d190-60e3-4caf-ba78-9a121882a5b1', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/1057d190-60e3-4caf-ba78-9a121882a5b1', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1057d190-60e3-4caf-ba78-9a121882a5b1', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '8360d039-8ebc-43c3-85d7-80332a3ebfcb', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/8360d039-8ebc-43c3-85d7-80332a3ebfcb', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/8360d039-8ebc-43c3-85d7-80332a3ebfcb', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'dba9fc19-c0cd-4647-8346-09a853106c55', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/dba9fc19-c0cd-4647-8346-09a853106c55', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/dba9fc19-c0cd-4647-8346-09a853106c55', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} +GET: /v1/volume/targets?sort_key=foo {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-c417c18c-7cb9-4e9f-9b80-e3e32db61574 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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 {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-4e742e48-31a5-4cbc-af0f-afb8a5075e40 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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 {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-8a897c21-7498-43be-a43f-a4b1b99f8f05 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/chassis {} +GOT:{'chassis': []} +GET: /v1/chassis {} +GOT:Response: 401 Unauthorized +Content-Type: application/json +Www-Authenticate: Basic realm="Baremetal API" +{"error":{"message":"Authorization required","code":401}} +GET: /v1/ {} +GOT:{'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.80'}} +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on ... ok +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_destroy +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_destroy ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_148_ports_port_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_148_ports_port_id_patch_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_invalid_delete_subscription +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_invalid_delete_subscription ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure ... ok +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_242_conductors_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_242_conductors_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_196_volume_volume_target_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_196_volume_volume_target_id_delete_member ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_102_nodes_vifs_post_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_102_nodes_vifs_post_observer ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu ... ok +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_create_subscription +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_create_subscription ... ok +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_id +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_id ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_179_owner_member_can_set_console ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_179_owner_member_can_set_console ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_197_volume_volume_target_id_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_197_volume_volume_target_id_delete_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_196_volume_volume_target_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_196_volume_volume_target_id_delete_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off ... ok +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_uuid +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_uuid ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__release_allocated_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__release_allocated_port ... ok +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_delete_subscription +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_delete_subscription ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning_failed +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning_failed ... ok +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_149_ports_port_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_149_ports_port_id_patch_member ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_detect_vendor +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_detect_vendor ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset ... ok +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_by_node_id +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_by_node_id ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_243_conductors_hostname_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_243_conductors_hostname_get_admin ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_103_nodes_vifs_node_vif_ident_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_103_nodes_vifs_node_vif_ident_delete_admin ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces ... ok +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_dev +ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_dev ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_180_lessee_member_cannot_set_console ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_180_lessee_member_cannot_set_console ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_197_volume_volume_target_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_197_volume_volume_target_id_delete_member ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects ... ok +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_none +ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_none ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final ... ok +ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check +ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying_failed +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying_failed ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_150_ports_port_id_patch_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_150_ports_port_id_patch_reader ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_181_owner_admin_cannot_get_vendor_passthru_methods +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_181_owner_admin_cannot_get_vendor_passthru_methods ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_244_conductors_hostname_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_244_conductors_hostname_get_member ... ok -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-98d572d9-9e71-4d74-bd6b-ef951cb160dc -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:33:17.344008+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"} -API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-d9e91279-1311-4b49-9bf9-e3acc5cfdfef -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:33:19.381753+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"} -ACL Test GOT Response: 200 OK +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_198_volume_volume_target_id_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_198_volume_volume_target_id_delete_observer ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result2 +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result2 ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_151_ports_port_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_151_ports_port_id_delete_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_182_owner_manager_cannot_get_vendor_passthru_methods +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_182_owner_manager_cannot_get_vendor_passthru_methods ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_199_nodes_volume_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_199_nodes_volume_get_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_245_conductors_hostname_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_245_conductors_hostname_get_observer ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_clean +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_clean ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_fast_track +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_fast_track ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_deploy +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_deploy ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_152_ports_port_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_152_ports_port_id_delete_member ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_immediate +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_immediate ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_183_owner_member_cannot_get_vendor_passthru_methods +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_183_owner_member_cannot_get_vendor_passthru_methods ... ok +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d9e91279-1311-4b49-9bf9-e3acc5cfdfef +Openstack-Request-Id: req-45249cbc-bae4-4e2a-b51c-d41b27229c17 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:33:19.381753+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"} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 503 Service Unavailable +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-720fe369-f85f-45df-9ed4-f1bf76523911 +Openstack-Request-Id: req-1436f0c0-ba13-4435-8a05-3caa2fcec682 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-720fe369-f85f-45df-9ed4-f1bf76523911 +Openstack-Request-Id: req-1436f0c0-ba13-4435-8a05-3caa2fcec682 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1668bc9a-a252-4a71-a899-f30e78040b63 +Openstack-Request-Id: req-e68088ab-f523-4aff-9554-65eef433c853 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1668bc9a-a252-4a71-a899-f30e78040b63 +Openstack-Request-Id: req-e68088ab-f523-4aff-9554-65eef433c853 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37264,530 +36889,799 @@ DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0c15c8b3-b9ac-4d5f-bef6-04b56cb933a4 +Openstack-Request-Id: req-1cac51fe-5471-4843-a32d-c7832ee2c0bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0c15c8b3-b9ac-4d5f-bef6-04b56cb933a4 +Openstack-Request-Id: req-1cac51fe-5471-4843-a32d-c7832ee2c0bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 503 Service Unavailable +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-66aca9ef-8d58-4bbc-b418-081275cb831e +Openstack-Request-Id: req-b0d8f16a-59cc-46bf-9e1b-c12fb376a4ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-66aca9ef-8d58-4bbc-b418-081275cb831e +Openstack-Request-Id: req-b0d8f16a-59cc-46bf-9e1b-c12fb376a4ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-da8ec2ad-6cde-4348-b273-117fab340543 +Openstack-Request-Id: req-2158e0a2-4de9-44ae-b3e7-c90e389b77b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-da8ec2ad-6cde-4348-b273-117fab340543 +Openstack-Request-Id: req-2158e0a2-4de9-44ae-b3e7-c90e389b77b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_198_nodes_volume_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_198_nodes_volume_get_admin ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_member ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_181_owner_admin_cannot_get_vendor_passthru_methods -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_181_owner_admin_cannot_get_vendor_passthru_methods ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_245_conductors_hostname_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_245_conductors_hostname_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_199_nodes_volume_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_199_nodes_volume_get_member ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_observer ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_182_owner_manager_cannot_get_vendor_passthru_methods -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_182_owner_manager_cannot_get_vendor_passthru_methods ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_246_allocations_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_246_allocations_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_200_nodes_volume_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_200_nodes_volume_get_reader ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_106_nodes_management_indicators_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_106_nodes_management_indicators_get_admin ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_183_owner_member_cannot_get_vendor_passthru_methods -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_183_owner_member_cannot_get_vendor_passthru_methods ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_247_allocations_post_member -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." -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_201_nodes_volume_connectors_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_201_nodes_volume_connectors_get_admin ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_107_nodes_management_indicators_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_107_nodes_management_indicators_get_member ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_184_owner_reader_cannot_get_vendor_passthru_methods -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_184_owner_reader_cannot_get_vendor_passthru_methods ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_248_allocations_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_248_allocations_post_observer ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-dfc55a2b-038e-43f8-a903-69d72e3973ea +Openstack-Request-Id: req-cd7fe2fc-c264-4209-97db-d00ee9ad80c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-dfc55a2b-038e-43f8-a903-69d72e3973ea +Openstack-Request-Id: req-cd7fe2fc-c264-4209-97db-d00ee9ad80c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} -GOT:Response: 200 OK +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3df1d74c-c905-489b-b566-163c8b728a5a +Openstack-Request-Id: req-bbcc451c-6c6b-48ef-b07c-5add40844eb4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_246_allocations_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_246_allocations_post_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_200_nodes_volume_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_200_nodes_volume_get_member ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_on_reset +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_on_reset ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok_bios +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok_bios ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_153_ports_port_id_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_153_ports_port_id_delete_reader ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_247_allocations_post_member +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." +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_184_owner_reader_cannot_get_vendor_passthru_methods +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_184_owner_reader_cannot_get_vendor_passthru_methods ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_201_nodes_volume_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_201_nodes_volume_get_observer ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_supported_apply_times +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_supported_apply_times ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_apply_configuration +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_apply_configuration ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_154_nodes_ports_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_154_nodes_ports_get_admin ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-3df1d74c-c905-489b-b566-163c8b728a5a +Location: http://localhost/v1/volume/targets/d97e34f1-98e6-4f56-a129-6b86ac2dd788 +Openstack-Request-Id: req-0ddd3957-9e70-4df3-ad54-bda7bb99c853 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} -GOT:Response: 200 OK +{"uuid": "d97e34f1-98e6-4f56-a129-6b86ac2dd788", "created_at": "2024-01-06T15:33:25.148221+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/d97e34f1-98e6-4f56-a129-6b86ac2dd788", "rel": "self"}, {"href": "http://localhost/volume/targets/d97e34f1-98e6-4f56-a129-6b86ac2dd788", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +GET: /v1/volume/targets/d97e34f1-98e6-4f56-a129-6b86ac2dd788 {} +GOT:{'uuid': 'd97e34f1-98e6-4f56-a129-6b86ac2dd788', 'created_at': '2024-01-06T15:33:25.148221+00:00', 'updated_at': None, 'boot_index': 0, 'extra': {}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/d97e34f1-98e6-4f56-a129-6b86ac2dd788', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d97e34f1-98e6-4f56-a129-6b86ac2dd788', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +POST: /v1/volume/targets {'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 -Openstack-Request-Id: req-05308847-8cd1-4e79-a052-c7440ad71376 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +POST: /v1/volume/targets {'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-8620f7d1-c8b6-46f1-979f-414e03b0c243 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 123 is not of type 'string'\", \"debuginfo\": null}"} +POST: /v1/volume/targets {'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-05308847-8cd1-4e79-a052-c7440ad71376 +Openstack-Request-Id: req-38baf3b2-bad0-47ce-b627-7ec493c61409 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'node_uuid' is a required property\", \"debuginfo\": null}"} +POST: /v1/volume/targets {'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-ebe32138-eb1c-4964-9380-7caad828e675 +Openstack-Request-Id: req-bdd4324d-84c0-4d43-bb99-5968f78008f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'volume_type' is a required property\", \"debuginfo\": null}"} +POST: /v1/volume/targets {'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-ebe32138-eb1c-4964-9380-7caad828e675 +Openstack-Request-Id: req-6eb876ef-3028-4220-88e9-867eff3c0f27 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'boot_index' is a required property\", \"debuginfo\": null}"} +POST: /v1/volume/targets {'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-35a40573-8c26-43f6-a308-c618dbcef2d4 +Openstack-Request-Id: req-1a93590e-ec6a-4222-9a67-0d94f2f227b3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_202_nodes_volume_connectors_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_202_nodes_volume_connectors_get_member ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing ... ok -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"} +POST: /v1/volume/targets {'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 -Openstack-Request-Id: req-1dc01528-ce9e-4de5-8080-b91605223d80 +Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-56389ac9-b8e7-4fa3-89ae-09fb77d70f6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} -GOT:Response: 404 Not Found +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:28.201341+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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T15:33:28.201341+00:00', 'updated_at': None, 'boot_index': 0, 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, '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'} +POST: /v1/volume/targets {'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 -Openstack-Request-Id: req-f27e0615-1ae8-4c21-8335-d6116f89c60c +Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-14a87d11-539a-4787-b1c0-52a044b7ce84 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:33:28.607982+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"} +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_248_allocations_post_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_248_allocations_post_observer ... ok +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f27e0615-1ae8-4c21-8335-d6116f89c60c +Openstack-Request-Id: req-8c9d3f81-e136-40e4-b86d-fb7f03eb4931 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-8c9d3f81-e136-40e4-b86d-fb7f03eb4931 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {'enabled': True} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ae66ecff-efa7-4fa0-9b52-decf1fcd2f2b +Openstack-Request-Id: req-7ceaf62c-aacc-4f69-bcac-93d3bde3b6fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ae66ecff-efa7-4fa0-9b52-decf1fcd2f2b +Openstack-Request-Id: req-7ceaf62c-aacc-4f69-bcac-93d3bde3b6fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {'enabled': True} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d6311fe0-bf8e-4ba6-a333-ff4c5df2dbd5 +Openstack-Request-Id: req-001417a8-d16e-4a8e-9e44-c69e1dd973ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d6311fe0-bf8e-4ba6-a333-ff4c5df2dbd5 +Openstack-Request-Id: req-001417a8-d16e-4a8e-9e44-c69e1dd973ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 -GOT:Response: 404 Not Found +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {'enabled': True} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-71fdf980-1450-47ce-92b6-773779cf6b25 +Openstack-Request-Id: req-e4be2fd2-5182-4377-8e61-11ad6b4f966f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-71fdf980-1450-47ce-92b6-773779cf6b25 +Openstack-Request-Id: req-e4be2fd2-5182-4377-8e61-11ad6b4f966f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-84e05ca7-c375-427b-99d5-a009498dc60e +Openstack-Request-Id: req-354c83ac-131b-41ca-8775-3cb2cb10fd4e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-84e05ca7-c375-427b-99d5-a009498dc60e +Openstack-Request-Id: req-354c83ac-131b-41ca-8775-3cb2cb10fd4e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2aa39ed1-8f15-4429-bcff-72fb3c01a5f4 +Openstack-Request-Id: req-63999615-ec34-4133-9b31-dded54af1363 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2aa39ed1-8f15-4429-bcff-72fb3c01a5f4 +Openstack-Request-Id: req-63999615-ec34-4133-9b31-dded54af1363 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-70e4ece0-9c98-4e1d-b0e7-8f9b3a7db095 +Openstack-Request-Id: req-8716d680-459e-43ba-a488-a8d65a18ef9e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-70e4ece0-9c98-4e1d-b0e7-8f9b3a7db095 +Openstack-Request-Id: req-8716d680-459e-43ba-a488-a8d65a18ef9e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-700d0b09-954d-45c0-b94f-8448d81c677e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-700d0b09-954d-45c0-b94f-8448d81c677e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods {} +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_185_lessee_admin_cannot_get_vendor_passthru_methods +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_185_lessee_admin_cannot_get_vendor_passthru_methods ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_202_nodes_volume_connectors_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_202_nodes_volume_connectors_get_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off ... ok +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-2910c338-218e-4c6a-ba0b-fb7cdad86339 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:37.325702+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e721df44-4d30-4b27-aecc-0fa9c105c6c9 +Openstack-Request-Id: req-492fea9c-44e4-47f8-afd6-88b63036d692 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -GOT:Response: 403 Forbidden +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-4e65e93c-9430-456b-968b-c9f8423905b6 +Openstack-Request-Id: req-492fea9c-44e4-47f8-afd6-88b63036d692 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-4e65e93c-9430-456b-968b-c9f8423905b6 +Openstack-Request-Id: req-cbc79b71-13b3-472d-aea2-c85249e84ea1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {'enabled': True} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-cbc79b71-13b3-472d-aea2-c85249e84ea1 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-51ba3551-42df-46b2-9e3b-446b3513be3c +Openstack-Request-Id: req-b6c289e1-6e93-45f8-991c-2527487a94ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-51ba3551-42df-46b2-9e3b-446b3513be3c +Openstack-Request-Id: req-b6c289e1-6e93-45f8-991c-2527487a94ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {'enabled': True} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-908a32be-5381-47da-a39c-ca1333e6cd12 +Openstack-Request-Id: req-1e821578-8576-4013-84e6-ba796b4490a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-908a32be-5381-47da-a39c-ca1333e6cd12 +Openstack-Request-Id: req-1e821578-8576-4013-84e6-ba796b4490a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {'enabled': True} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3e97a761-d383-4517-be0f-a8d8719415fa +Openstack-Request-Id: req-8a7f29d4-1959-4733-9b29-53d8b6098c94 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3e97a761-d383-4517-be0f-a8d8719415fa +Openstack-Request-Id: req-8a7f29d4-1959-4733-9b29-53d8b6098c94 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-68e4ad51-9405-411c-8025-80b43e3aae75 +Openstack-Request-Id: req-0fdc449d-2448-4523-b71d-a1fc5c3e6762 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-68e4ad51-9405-411c-8025-80b43e3aae75 +Openstack-Request-Id: req-0fdc449d-2448-4523-b71d-a1fc5c3e6762 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-fb1b565e-5bf5-4083-a160-ce4df0ee56f7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-fb1b565e-5bf5-4083-a160-ce4df0ee56f7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_155_nodes_ports_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_155_nodes_ports_get_member ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_249_allocations_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_249_allocations_get_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_186_lessee_manager_cannot_get_vendor_passthru_methods +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_186_lessee_manager_cannot_get_vendor_passthru_methods ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_203_nodes_volume_connectors_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_203_nodes_volume_connectors_get_member ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_156_nodes_ports_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_156_nodes_ports_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_250_allocations_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_250_allocations_get_member ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_187_lessee_member_cannot_get_vendor_passthru_methods +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_187_lessee_member_cannot_get_vendor_passthru_methods ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_204_nodes_volume_connectors_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_204_nodes_volume_connectors_get_observer ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_157_nodes_ports_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_157_nodes_ports_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_251_allocations_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_251_allocations_get_observer ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device_bios +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device_bios ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_188_lessee_reader_cannot_get_vendor_passthru_methods +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_188_lessee_reader_cannot_get_vendor_passthru_methods ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_205_nodes_volume_targets_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_205_nodes_volume_targets_get_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps_config_priority +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps_config_priority ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_158_nodes_ports_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_158_nodes_ports_detail_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_252_allocations_allocation_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_252_allocations_allocation_id_get_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_189_owner_admin_cannot_get_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_189_owner_admin_cannot_get_vendor_passthru ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_deploy_steps +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_deploy_steps ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-c8759f55-98be-489b-a919-7e64a192e6bc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-c8759f55-98be-489b-a919-7e64a192e6bc +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-3da677e5-fd62-41bf-b89c-b127a57b12ae +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-3da677e5-fd62-41bf-b89c-b127a57b12ae +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-444040d9-cfe0-4969-bf66-24f1506be7ea +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:42.263725+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-444040d9-cfe0-4969-bf66-24f1506be7ea +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:42.263725+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-a2b34250-9a0d-4787-a5d1-b8aab87057d0 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:42.705618+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-a2b34250-9a0d-4787-a5d1-b8aab87057d0 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:42.705618+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-1bfa46be-dddc-4ade-9601-cae21d169f76 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:43.038761+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_159_nodes_ports_detail_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_159_nodes_ports_detail_get_reader ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok_bios +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok_bios ... ok +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-bbcc451c-6c6b-48ef-b07c-5add40844eb4 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-c031258f-c652-4407-8085-0e80c859443d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-c031258f-c652-4407-8085-0e80c859443d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-8b1aa7ec-f599-4971-bb12-c56829476d36 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-8b1aa7ec-f599-4971-bb12-c56829476d36 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-10178c9a-7d37-4d5e-9e68-16099a65fe98 +Openstack-Request-Id: req-8b5da6f6-8f4f-45d4-8f16-fcecaa8b41ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-10178c9a-7d37-4d5e-9e68-16099a65fe98 +Openstack-Request-Id: req-8b5da6f6-8f4f-45d4-8f16-fcecaa8b41ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7157c5e2-44f2-4c7f-af0e-77156ad404ac +Openstack-Request-Id: req-aab47115-749b-49b9-9579-0d03b16e273b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7157c5e2-44f2-4c7f-af0e-77156ad404ac +Openstack-Request-Id: req-aab47115-749b-49b9-9579-0d03b16e273b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru/methods {} -GOT:Response: 403 Forbidden +{"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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1f37e389-caef-4da8-8e65-9f02ff185afc +Openstack-Request-Id: req-315b51dd-80e0-46dc-a02e-8be33ca0095e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1f37e389-caef-4da8-8e65-9f02ff185afc +Openstack-Request-Id: req-315b51dd-80e0-46dc-a02e-8be33ca0095e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods {} -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_108_nodes_management_indicators_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_108_nodes_management_indicators_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_185_lessee_admin_cannot_get_vendor_passthru_methods -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_185_lessee_admin_cannot_get_vendor_passthru_methods ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_249_allocations_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_249_allocations_get_admin ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_203_nodes_volume_connectors_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_203_nodes_volume_connectors_get_reader ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_109_nodes_management_indicators_component_get_allow -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.' -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_missing -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_missing ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_186_lessee_manager_cannot_get_vendor_passthru_methods -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_186_lessee_manager_cannot_get_vendor_passthru_methods ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_250_allocations_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_250_allocations_get_member ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_set -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_set ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_110_nodes_management_indicators_component_ind_ident_get_allow -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.' -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_missing -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_missing ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_204_nodes_volume_targets_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_204_nodes_volume_targets_get_admin ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_default ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_non_default ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_187_lessee_member_cannot_get_vendor_passthru_methods -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_187_lessee_member_cannot_get_vendor_passthru_methods ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_251_allocations_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_251_allocations_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_111_nodes_management_indicators_component_ind_ident_put_allow -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.' -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_remove -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_remove ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_205_nodes_volume_targets_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_205_nodes_volume_targets_get_member ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_188_lessee_reader_cannot_get_vendor_passthru_methods -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_188_lessee_reader_cannot_get_vendor_passthru_methods ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_252_allocations_allocation_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_252_allocations_allocation_id_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_112_portgroups_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_112_portgroups_get_admin ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_206_nodes_volume_targets_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_206_nodes_volume_targets_get_reader ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default ... ok +{"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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_206_nodes_volume_targets_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_206_nodes_volume_targets_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_190_owner_manager_cannot_get_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_190_owner_manager_cannot_get_vendor_passthru ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_253_allocations_allocation_id_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_253_allocations_allocation_id_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_189_owner_admin_cannot_get_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_189_owner_admin_cannot_get_vendor_passthru ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_113_portgroups_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_113_portgroups_get_member ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_207_drivers_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_207_drivers_get_admin ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent_bios +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent_bios ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_160_portgroups_ports_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_160_portgroups_ports_get_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set_bios_mode +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set_bios_mode ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_191_owner_member_cannot_get_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_191_owner_member_cannot_get_vendor_passthru ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_207_nodes_volume_targets_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_207_nodes_volume_targets_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_254_allocations_allocation_id_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_254_allocations_allocation_id_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_190_owner_manager_cannot_get_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_190_owner_manager_cannot_get_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_114_portgroups_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_114_portgroups_get_observer ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_208_drivers_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_208_drivers_get_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_uefi_mode +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_uefi_mode ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_161_portgroups_ports_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_161_portgroups_ports_get_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_208_drivers_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_208_drivers_get_admin ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_fast_track +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_fast_track ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_onetime_smci +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_onetime_smci ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-45deab03-8dd4-4d45-99ea-96fcb716ef9b +Openstack-Request-Id: req-dc7a270a-9c01-44bf-9407-c4d6c8a277dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37796,7 +37690,7 @@ GET: /v1/conductors {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-90bf7f12-8bdc-4c3b-a44f-776c0917ebfa +Openstack-Request-Id: req-ce7ae7f6-30bf-4534-8797-0cbd03e1b1b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37805,7 +37699,7 @@ GET: /v1/conductors {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-d56d9b67-7dd3-4ac1-ab86-f787d4b95197 +Openstack-Request-Id: req-4762b4b5-b9ea-4ffc-bbff-c8803e921c91 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37814,7 +37708,7 @@ GET: /v1/conductors {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-c2d0a406-e155-491c-9fdd-1d61ccb166fd +Openstack-Request-Id: req-0fe286f6-99b4-4b59-b0b6-ceb8056cf716 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37823,7 +37717,7 @@ GET: /v1/conductors/test-conductor-node {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-467b8935-0f10-4d52-8c52-3e62a2faedbd +Openstack-Request-Id: req-fde430d4-b243-47da-88fb-53c458eea0ca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37832,7 +37726,7 @@ GET: /v1/conductors/test-conductor-node {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-4fe3c1bf-6b67-4476-9459-a27c3457ca6b +Openstack-Request-Id: req-096c9835-6d07-4cb7-beb5-80142dbededd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37841,7 +37735,7 @@ GET: /v1/conductors/test-conductor-node {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-fb3ad223-d2cd-4df6-b78b-5a5ad85305cf +Openstack-Request-Id: req-f99116f2-7542-42b6-a308-8173ecd7dcc9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37850,7 +37744,7 @@ POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-92e7fd02-d4b1-4adc-a065-e1094db6866b +Openstack-Request-Id: req-a2670a7c-2ffc-4141-9f85-a2be78fee141 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37859,7 +37753,7 @@ POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0c2011a6-1412-4f9b-9987-7d9106ec29ea +Openstack-Request-Id: req-a2a53121-bd6c-4b73-ad31-06eaff2f2e5f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37868,7 +37762,7 @@ GET: /v1/allocations {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6e42b0e1-9fa9-495b-8605-eebcd7350790 +Openstack-Request-Id: req-9233d282-060a-486e-b24d-8d0827124c52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37877,7 +37771,7 @@ GET: /v1/allocations {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-270d8042-920a-49b8-bd6b-75dfc9443a36 +Openstack-Request-Id: req-1b146312-187b-4f2d-8341-429765be7691 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -37886,626 +37780,690 @@ GET: /v1/allocations {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b8cc66ec-fe8b-4d58-89c1-bdb7c23a49ec +Openstack-Request-Id: req-d9166945-90a8-4b70-ada2-bbc061276ca7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations/e04eabd8-bb62-466f-8c24-30a6d021aaf9 -GET: /v1/allocations/e04eabd8-bb62-466f-8c24-30a6d021aaf9 {} +API ACL Testing Path get /v1/allocations/c6b9303a-e9dc-495d-ad4a-f536a3084932 +GET: /v1/allocations/c6b9303a-e9dc-495d-ad4a-f536a3084932 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8fb674d0-efa8-44cd-894f-0d363f27d365 +Openstack-Request-Id: req-2499fa7f-8e45-46e0-96bc-c838d42a34c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation e04eabd8-bb62-466f-8c24-30a6d021aaf9 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations/80887bca-2442-42d1-ab76-2a49e9541576 -GET: /v1/allocations/80887bca-2442-42d1-ab76-2a49e9541576 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation c6b9303a-e9dc-495d-ad4a-f536a3084932 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/allocations/d65b13f0-30bc-469b-8780-4c3707434ea1 +GET: /v1/allocations/d65b13f0-30bc-469b-8780-4c3707434ea1 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-008bc335-41b6-44ee-89a8-6c01c15cc113 +Openstack-Request-Id: req-d87dc2b1-a962-4023-9d26-98b5c05e0972 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 80887bca-2442-42d1-ab76-2a49e9541576 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations/a1d4f502-5d08-4195-926a-4cb32caa2e90 -GET: /v1/allocations/a1d4f502-5d08-4195-926a-4cb32caa2e90 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation d65b13f0-30bc-469b-8780-4c3707434ea1 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/allocations/3ae7f161-1a8e-4d99-a44b-ca9a5e2c9cde +GET: /v1/allocations/3ae7f161-1a8e-4d99-a44b-ca9a5e2c9cde {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ed6d89b1-a64d-4091-9963-776123beed91 +Openstack-Request-Id: req-6ffac467-2184-48c8-bef8-bebfd53f0b9b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation a1d4f502-5d08-4195-926a-4cb32caa2e90 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/04fa3a4a-c2bb-4263-a087-e4aae8a8edba -PATCH: /v1/allocations/04fa3a4a-c2bb-4263-a087-e4aae8a8edba [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 3ae7f161-1a8e-4d99-a44b-ca9a5e2c9cde could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/allocations/6e205575-9ab5-48a8-ae86-020a8bca1aec +PATCH: /v1/allocations/6e205575-9ab5-48a8-ae86-020a8bca1aec [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_255_allocations_allocation_id_patch_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_255_allocations_allocation_id_patch_admin ... ok -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_191_owner_member_cannot_get_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_191_owner_member_cannot_get_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_115_portgroups_post_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_115_portgroups_post_admin ... ok -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_209_drivers_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_209_drivers_get_reader ... ok -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_256_allocations_allocation_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_256_allocations_allocation_id_patch_member ... ok -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-7a996e81-82b3-46f7-a817-92e75ba26e21 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PUT: /v1/nodes/node-39/traits/CUSTOM_3 {'traits': ['CUSTOM_3']} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-834e5a0d-71a8-4280-a87e-eca29fe0ea60 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} -GOT:Response: 204 No Content -Openstack-Request-Id: req-c0814da5-34aa-4c01-b018-223d38a5fc61 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 - -PUT: /v1/nodes/node-39/traits {'traits': []} -GOT:Response: 204 No Content -Openstack-Request-Id: req-8802087a-2513-4643-8b08-c21e8e72090b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'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\": \"\"}"} -PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'BAD_TRAIT']} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-fe7265da-fcf3-4a7d-b297-c37084287300 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PUT: /v1/nodes/node-39/traits {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-08d15c5d-7b60-46d2-9438-89ccfd472ab6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT']} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-9c0b614f-601d-40fb-8fdc-9b5712fedd0e -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} -GOT:Response: 204 No Content -Openstack-Request-Id: req-cf42fbf6-55e0-4d65-bee9-637dc675f227 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 - +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_162_portgroups_ports_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_162_portgroups_ports_get_reader ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_192_owner_reader_cannot_get_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_192_owner_reader_cannot_get_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_116_portgroups_post_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_116_portgroups_post_member ... ok -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-35a40573-8c26-43f6-a308-c618dbcef2d4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} -GOT:Response: 200 OK +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_loading_error +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_loading_error ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_209_drivers_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_209_drivers_get_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent_smci +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent_smci ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_256_allocations_allocation_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_256_allocations_allocation_id_patch_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_163_portgroups_ports_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_163_portgroups_ports_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability ... ok +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-730cc952-aec9-406e-9897-c7e8930bd57a +Openstack-Request-Id: req-5d9daea4-8e6a-4892-b03f-f84d261b4b70 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-730cc952-aec9-406e-9897-c7e8930bd57a +Openstack-Request-Id: req-5d9daea4-8e6a-4892-b03f-f84d261b4b70 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7c201229-a2a2-4b54-a41e-df1eefad5743 +Openstack-Request-Id: req-77fdde66-5950-44f3-af30-37bd15c91f02 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7c201229-a2a2-4b54-a41e-df1eefad5743 +Openstack-Request-Id: req-77fdde66-5950-44f3-af30-37bd15c91f02 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e4911404-6cb5-418d-a43d-dbd3c4428811 +Openstack-Request-Id: req-0db3d1d4-485b-4603-8634-057b45cc75a6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e4911404-6cb5-418d-a43d-dbd3c4428811 +Openstack-Request-Id: req-0db3d1d4-485b-4603-8634-057b45cc75a6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c5b63a80-fb02-41d8-8fa9-d30ff65d893b +Openstack-Request-Id: req-b1967238-af01-4675-b476-5c69f7a7ef46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c5b63a80-fb02-41d8-8fa9-d30ff65d893b +Openstack-Request-Id: req-b1967238-af01-4675-b476-5c69f7a7ef46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/drivers -GET: /v1/drivers {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-692a62df-198a-47ad-ab1d-fcd9826193ce +Openstack-Request-Id: req-1dbeccc5-288f-4a31-b967-d8d40fbf9640 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"drivers": []} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-692a62df-198a-47ad-ab1d-fcd9826193ce +Openstack-Request-Id: req-1dbeccc5-288f-4a31-b967-d8d40fbf9640 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"drivers": []} -API ACL Testing Path get /v1/drivers -GET: /v1/drivers {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b38d4754-678a-4ba7-86e9-3013f0fd2ab0 +Openstack-Request-Id: req-65b151f8-65e6-45b8-9de1-6fb35aa119b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"drivers": []} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b38d4754-678a-4ba7-86e9-3013f0fd2ab0 +Openstack-Request-Id: req-65b151f8-65e6-45b8-9de1-6fb35aa119b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"drivers": []} -API ACL Testing Path get /v1/drivers -GET: /v1/drivers {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-55992dcf-c186-4800-b77b-711e5b55359a +Openstack-Request-Id: req-7ca8459f-6636-40a4-aac4-c6bd331c8009 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"drivers": []} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-55992dcf-c186-4800-b77b-711e5b55359a +Openstack-Request-Id: req-7ca8459f-6636-40a4-aac4-c6bd331c8009 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"drivers": []} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_210_drivers_driver_name_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_210_drivers_driver_name_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_257_allocations_allocation_id_patch_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_257_allocations_allocation_id_patch_observer ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d4121a70-7ff8-4e7a-a3b9-5f6837aea045 +Openstack-Request-Id: req-022e28e2-74ec-4651-84db-81dbd61a018f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d4121a70-7ff8-4e7a-a3b9-5f6837aea045 +Openstack-Request-Id: req-022e28e2-74ec-4651-84db-81dbd61a018f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods {} -GOT:Response: 403 Forbidden +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test {} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_193_lessee_admin_cannot_get_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_193_lessee_admin_cannot_get_vendor_passthru ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_210_drivers_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_210_drivers_get_observer ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info ... ok +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate +ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_257_allocations_allocation_id_patch_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_257_allocations_allocation_id_patch_observer ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_164_portgroups_ports_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_164_portgroups_ports_detail_get_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_bios +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_bios ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue +ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_194_lessee_manager_cannot_get_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_194_lessee_manager_cannot_get_vendor_passthru ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_uefi +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_uefi ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_anaconda_deploy_image_source +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_anaconda_deploy_image_source ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel +ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_211_drivers_driver_name_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_211_drivers_driver_name_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_258_allocations_allocation_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_258_allocations_allocation_id_delete_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_boot_iso_conflict +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_boot_iso_conflict ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_165_portgroups_ports_detail_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_165_portgroups_ports_detail_get_reader ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_bios +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_bios ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_raritan_pdu2_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_raritan_pdu2_snmp_objects ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_stage2_id +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_stage2_id ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_195_lessee_member_cannot_get_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_195_lessee_member_cannot_get_vendor_passthru ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_uefi +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_uefi ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry3_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry3_snmp_objects ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_212_drivers_driver_name_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_212_drivers_driver_name_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_259_allocations_allocation_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_259_allocations_allocation_id_delete_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_166_volume_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_166_volume_get_admin ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry4_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry4_snmp_objects ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_196_lessee_reader_cannot_get_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_196_lessee_reader_cannot_get_vendor_passthru ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_213_drivers_driver_name_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_213_drivers_driver_name_get_observer ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_167_volume_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_167_volume_get_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_local_boot +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_local_boot ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_197_owner_admin_cannot_post_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_197_owner_admin_cannot_post_vendor_passthru ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_214_drivers_properties_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_214_drivers_properties_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_260_allocations_allocation_id_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_260_allocations_allocation_id_delete_observer ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_ramdisk_deploy +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_ramdisk_deploy ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off ... ok +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3bae4112-cdd9-4843-aec8-0bb3d162548b +Openstack-Request-Id: req-1bfa46be-dddc-4ade-9601-cae21d169f76 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:43.038761+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3bae4112-cdd9-4843-aec8-0bb3d162548b +Openstack-Request-Id: req-02ab862b-4660-4980-9ac2-9402e7b8e2d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods {} -GOT:Response: 403 Forbidden +{"ports": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8a139547-0a48-417d-8082-6c1ec0274ba7 +Openstack-Request-Id: req-02ab862b-4660-4980-9ac2-9402e7b8e2d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"ports": []} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8a139547-0a48-417d-8082-6c1ec0274ba7 +Openstack-Request-Id: req-3a4c4aa9-a208-4880-9050-709af10505f2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru/methods {} -GOT:Response: 403 Forbidden +{"ports": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b798d802-83f3-443a-b0a9-7346467938f8 +Openstack-Request-Id: req-3a4c4aa9-a208-4880-9050-709af10505f2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"ports": []} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b798d802-83f3-443a-b0a9-7346467938f8 +Openstack-Request-Id: req-3189a997-e962-4b97-9208-8dcbfde82b5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test {} -GOT:Response: 403 Forbidden +{"ports": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7b22a1d1-4b59-43f1-a502-350280a8c6eb +Openstack-Request-Id: req-3189a997-e962-4b97-9208-8dcbfde82b5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"ports": []} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7b22a1d1-4b59-43f1-a502-350280a8c6eb +Openstack-Request-Id: req-d49a51fb-e3cf-4069-b8de-032c2f74e145 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test {} -GOT:Response: 403 Forbidden +{"ports": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9bb344f9-d8f3-400c-b51e-d6fd536df7ee +Openstack-Request-Id: req-d49a51fb-e3cf-4069-b8de-032c2f74e145 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"ports": []} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9bb344f9-d8f3-400c-b51e-d6fd536df7ee +Openstack-Request-Id: req-acdcbf86-164a-4dce-affd-97176d3bd458 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test {} -GOT:Response: 403 Forbidden +{"ports": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fe47899d-bb7d-4b1e-aca9-f957eeb43768 +Openstack-Request-Id: req-acdcbf86-164a-4dce-affd-97176d3bd458 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"ports": []} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fe47899d-bb7d-4b1e-aca9-f957eeb43768 +Openstack-Request-Id: req-115a0131-8b7d-4ebe-aa24-d17470b58d77 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test {} -GOT:Response: 403 Forbidden +{"ports": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-31c0f0fa-f1b8-4d3e-9876-60a7be8ffe1c +Openstack-Request-Id: req-115a0131-8b7d-4ebe-aa24-d17470b58d77 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"ports": []} +API ACL Testing Path get /v1/volume +GET: /v1/volume {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-31c0f0fa-f1b8-4d3e-9876-60a7be8ffe1c +Openstack-Request-Id: req-514e8afc-e29b-4601-a8b8-bb08a5c5e405 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test {} -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_193_lessee_admin_cannot_get_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_193_lessee_admin_cannot_get_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_117_portgroups_post_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_117_portgroups_post_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_211_drivers_driver_name_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_211_drivers_driver_name_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_258_allocations_allocation_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_258_allocations_allocation_id_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_194_lessee_manager_cannot_get_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_194_lessee_manager_cannot_get_vendor_passthru ... ok -ACL Test GOT Response: 503 Service Unavailable +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e721df44-4d30-4b27-aecc-0fa9c105c6c9 +Openstack-Request-Id: req-514e8afc-e29b-4601-a8b8-bb08a5c5e405 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups -GET: /v1/portgroups {} +{"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"}]} +API ACL Testing Path get /v1/volume +GET: /v1/volume {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-62865e5e-7f1a-4a85-82c2-59ab7ffe58b2 +Openstack-Request-Id: req-6b3dbd4f-51c3-45ef-8a01-1c19bd15c34f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} +{"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-62865e5e-7f1a-4a85-82c2-59ab7ffe58b2 +Openstack-Request-Id: req-6b3dbd4f-51c3-45ef-8a01-1c19bd15c34f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/portgroups -GET: /v1/portgroups {} -GOT:Response: 403 Forbidden +{"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"}]} +API ACL Testing Path get /v1/volume +GET: /v1/volume {} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_168_volume_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_168_volume_get_reader ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on ... ok +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-50372cd6-80d6-4bce-a8c7-4237b7e8424a +Openstack-Request-Id: req-ac7701b4-6b55-4a3d-bd68-30e85dc0cb53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-50372cd6-80d6-4bce-a8c7-4237b7e8424a +Openstack-Request-Id: req-ac7701b4-6b55-4a3d-bd68-30e85dc0cb53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups -GET: /v1/portgroups {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-507b8bdc-4afe-4fb5-b0a3-b98dacd6d0a2 +Openstack-Request-Id: req-c92e6e3d-3748-4721-9297-399259dbaa08 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} +{"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-507b8bdc-4afe-4fb5-b0a3-b98dacd6d0a2 +Openstack-Request-Id: req-c92e6e3d-3748-4721-9297-399259dbaa08 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} -GOT:Response: 201 Created +{"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"}]} +API ACL Testing Path get /v1/drivers +GET: /v1/drivers {} +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/portgroups/1993940d-84d6-4b94-8ab5-d8a0d3e95136 -Openstack-Request-Id: req-7277726d-ba94-469d-b75a-74a9cffb8bcb +Openstack-Request-Id: req-61ae71a8-6cc5-4b35-a902-76d9648304e4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1993940d-84d6-4b94-8ab5-d8a0d3e95136", "created_at": "2025-02-07T21:33:48.150304+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/1993940d-84d6-4b94-8ab5-d8a0d3e95136", "rel": "self"}, {"href": "http://localhost/portgroups/1993940d-84d6-4b94-8ab5-d8a0d3e95136", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/1993940d-84d6-4b94-8ab5-d8a0d3e95136/ports", "rel": "self"}, {"href": "http://localhost/portgroups/1993940d-84d6-4b94-8ab5-d8a0d3e95136/ports", "rel": "bookmark"}]} -ACL Test GOT Response: 201 Created +{"drivers": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/portgroups/1993940d-84d6-4b94-8ab5-d8a0d3e95136 -Openstack-Request-Id: req-7277726d-ba94-469d-b75a-74a9cffb8bcb +Openstack-Request-Id: req-61ae71a8-6cc5-4b35-a902-76d9648304e4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1993940d-84d6-4b94-8ab5-d8a0d3e95136", "created_at": "2025-02-07T21:33:48.150304+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/1993940d-84d6-4b94-8ab5-d8a0d3e95136", "rel": "self"}, {"href": "http://localhost/portgroups/1993940d-84d6-4b94-8ab5-d8a0d3e95136", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/1993940d-84d6-4b94-8ab5-d8a0d3e95136/ports", "rel": "self"}, {"href": "http://localhost/portgroups/1993940d-84d6-4b94-8ab5-d8a0d3e95136/ports", "rel": "bookmark"}]} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} +{"drivers": []} +API ACL Testing Path get /v1/drivers +GET: /v1/drivers {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6344acf3-5465-4313-bad2-6f228c1f7d45 +Openstack-Request-Id: req-ff9b2286-037d-42e7-bccd-534939b6e488 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6344acf3-5465-4313-bad2-6f228c1f7d45 +Openstack-Request-Id: req-ff9b2286-037d-42e7-bccd-534939b6e488 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers +GET: /v1/drivers {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-69bfd6a8-f59e-4404-ada1-2d31112c6a2c +Openstack-Request-Id: req-d7667f69-e5ee-4ccf-bf87-08c1cca69fea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"drivers": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-69bfd6a8-f59e-4404-ada1-2d31112c6a2c +Openstack-Request-Id: req-d7667f69-e5ee-4ccf-bf87-08c1cca69fea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/detail -GET: /v1/portgroups/detail {} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_118_portgroups_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_118_portgroups_detail_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_212_drivers_driver_name_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_212_drivers_driver_name_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_259_allocations_allocation_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_259_allocations_allocation_id_delete_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_195_lessee_member_cannot_get_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_195_lessee_member_cannot_get_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_119_portgroups_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_119_portgroups_detail_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_213_drivers_properties_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_213_drivers_properties_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_260_allocations_allocation_id_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_260_allocations_allocation_id_delete_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_196_lessee_reader_cannot_get_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_196_lessee_reader_cannot_get_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_120_portgroups_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_120_portgroups_detail_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_214_drivers_properties_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_214_drivers_properties_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_261_nodes_allocation_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_261_nodes_allocation_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_197_owner_admin_cannot_post_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_197_owner_admin_cannot_post_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_121_portgroups_portgroup_ident_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_121_portgroups_portgroup_ident_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_262_nodes_allocation_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_262_nodes_allocation_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_215_drivers_properties_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_215_drivers_properties_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_198_owner_manager_cannot_post_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_198_owner_manager_cannot_post_vendor_passthru ... ok -GOT:Response: 200 OK +{"drivers": []} +API ACL Testing Path get /v1/drivers/fake-driverz +GET: /v1/drivers/fake-driverz {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-24dedcb8-7e6f-4150-875f-db45490765a8 +Openstack-Request-Id: req-5b345758-e01f-43e7-a0ac-dd210032a450 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:33:53.307027+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-24dedcb8-7e6f-4150-875f-db45490765a8 +Openstack-Request-Id: req-5b345758-e01f-43e7-a0ac-dd210032a450 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:33:53.307027+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/portgroups/detail -GET: /v1/portgroups/detail {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz +GET: /v1/drivers/fake-driverz {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bde466dd-7f75-4827-a0b8-713c983f0456 +Openstack-Request-Id: req-a634ae36-daa9-4d7d-84fd-42d8023c8e28 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bde466dd-7f75-4827-a0b8-713c983f0456 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/detail -GET: /v1/portgroups/detail {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-69af143f-e164-4826-a1a4-47e072616cd5 +Openstack-Request-Id: req-a634ae36-daa9-4d7d-84fd-42d8023c8e28 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:33:57.024394+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz +GET: /v1/drivers/fake-driverz {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-69af143f-e164-4826-a1a4-47e072616cd5 +Openstack-Request-Id: req-00458429-8f3e-48ef-8c8c-02955996a841 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:33:57.024394+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-37c96583-4712-4e36-a97a-c99d9eed3d2a +Openstack-Request-Id: req-00458429-8f3e-48ef-8c8c-02955996a841 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:33:58.906279+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/properties +GET: /v1/drivers/fake-driverz/properties {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-37c96583-4712-4e36-a97a-c99d9eed3d2a +Openstack-Request-Id: req-1483209c-5ade-4d3b-859f-f0e03d7a3566 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:33:58.906279+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5c290a68-e197-4421-b917-a16b8a7e82d8 +Openstack-Request-Id: req-1483209c-5ade-4d3b-859f-f0e03d7a3566 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_122_portgroups_portgroup_ident_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_122_portgroups_portgroup_ident_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_263_nodes_allocation_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_263_nodes_allocation_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_216_drivers_raid_logical_disk_properties_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_216_drivers_raid_logical_disk_properties_get_admin ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/properties +GET: /v1/drivers/fake-driverz/properties {} +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_215_drivers_properties_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_215_drivers_properties_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_198_owner_manager_cannot_post_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_198_owner_manager_cannot_post_vendor_passthru ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_261_nodes_allocation_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_261_nodes_allocation_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_169_volume_connectors_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_169_volume_connectors_get_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_vertivgeist_pdu_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_vertivgeist_pdu_snmp_objects ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout ... ok +ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps +ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps ... ok +WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_199_owner_member_cannot_post_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_199_owner_member_cannot_post_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_123_portgroups_portgroup_ident_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_123_portgroups_portgroup_ident_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_264_nodes_allocation_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_264_nodes_allocation_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_217_drivers_raid_logical_disk_properties_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_217_drivers_raid_logical_disk_properties_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_216_drivers_properties_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_216_drivers_properties_get_observer ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate ... ok +ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat +ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_262_nodes_allocation_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_262_nodes_allocation_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_170_volume_connectors_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_170_volume_connectors_get_member ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_200_owner_reader_cannot_post_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_200_owner_reader_cannot_post_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_124_portgroups_portgroup_ident_patch_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_124_portgroups_portgroup_ident_patch_admin ... ok +WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_217_drivers_raid_logical_disk_properties_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_217_drivers_raid_logical_disk_properties_get_admin ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_263_nodes_allocation_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_263_nodes_allocation_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_171_volume_connectors_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_171_volume_connectors_get_reader ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface ... ok +WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok ... ok +ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client +ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client ... ok GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a8c58546-9172-45e6-aa3f-dc98f631a3c9 +Openstack-Request-Id: req-e15a8e2a-f321-4529-8b50-f769c670e63a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a8c58546-9172-45e6-aa3f-dc98f631a3c9 +Openstack-Request-Id: req-e15a8e2a-f321-4529-8b50-f769c670e63a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38514,14 +38472,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-05853c9b-e074-40e5-b9d8-5cc277c2bc3e +Openstack-Request-Id: req-decf436f-1105-4d3b-9121-fbad31e8b9ce X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-05853c9b-e074-40e5-b9d8-5cc277c2bc3e +Openstack-Request-Id: req-decf436f-1105-4d3b-9121-fbad31e8b9ce X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38530,14 +38488,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6aaeca14-cc8d-47cc-9d36-d95796e268c5 +Openstack-Request-Id: req-7d5409c8-085c-4baf-94e5-535b13ef6513 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6aaeca14-cc8d-47cc-9d36-d95796e268c5 +Openstack-Request-Id: req-7d5409c8-085c-4baf-94e5-535b13ef6513 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38546,14 +38504,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-af1f0f8c-a6fd-4b7d-a0e5-c49cef811156 +Openstack-Request-Id: req-b60c909b-d6a6-4ac4-8997-bfa9c363e7c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-af1f0f8c-a6fd-4b7d-a0e5-c49cef811156 +Openstack-Request-Id: req-b60c909b-d6a6-4ac4-8997-bfa9c363e7c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38562,14 +38520,14 @@ POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e30b917e-28f4-43c2-8ce2-810141e4024d +Openstack-Request-Id: req-9b3d219c-04d4-4a23-b3b3-84af36c3cdf2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e30b917e-28f4-43c2-8ce2-810141e4024d +Openstack-Request-Id: req-9b3d219c-04d4-4a23-b3b3-84af36c3cdf2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38578,14 +38536,14 @@ POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-398519ec-c8fc-4615-8255-2b85c004e6e4 +Openstack-Request-Id: req-fa8ce19c-2d82-46e2-8a65-3ee4700a69e3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-398519ec-c8fc-4615-8255-2b85c004e6e4 +Openstack-Request-Id: req-fa8ce19c-2d82-46e2-8a65-3ee4700a69e3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38594,14 +38552,14 @@ POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ce844427-2844-43eb-912f-b993ca813b32 +Openstack-Request-Id: req-2aeff909-966e-4680-9b6e-1675d52ae516 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ce844427-2844-43eb-912f-b993ca813b32 +Openstack-Request-Id: req-2aeff909-966e-4680-9b6e-1675d52ae516 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38610,258 +38568,259 @@ POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-41cdf26c-6846-415e-9d2c-a8c451967a33 +Openstack-Request-Id: req-5c53360e-9771-49a6-9ca5-2df03927406f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-41cdf26c-6846-415e-9d2c-a8c451967a33 +Openstack-Request-Id: req-5c53360e-9771-49a6-9ca5-2df03927406f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_265_nodes_allocation_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_265_nodes_allocation_delete_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_201_lessee_admin_cannot_post_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_201_lessee_admin_cannot_post_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_218_drivers_raid_logical_disk_properties_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_218_drivers_raid_logical_disk_properties_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_125_portgroups_portgroup_ident_patch_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_125_portgroups_portgroup_ident_patch_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_266_nodes_allocation_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_266_nodes_allocation_delete_observer ... ok -API ACL Testing Path get /v1/drivers/fake-driverz -GET: /v1/drivers/fake-driverz {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-86e440c9-06b7-4ae5-abfe-3a61af414fac -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-86e440c9-06b7-4ae5-abfe-3a61af414fac -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz -GET: /v1/drivers/fake-driverz {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-6b4bca05-ec19-46c7-bce7-ddd6d7e0c7f6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-6b4bca05-ec19-46c7-bce7-ddd6d7e0c7f6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz -GET: /v1/drivers/fake-driverz {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-d7fbc39b-50b0-4ab2-9c21-c8fb0195e48d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-d7fbc39b-50b0-4ab2-9c21-c8fb0195e48d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/properties -GET: /v1/drivers/fake-driverz/properties {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-c6d2265d-3347-46d8-ab0d-f0d222452f6a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_264_nodes_allocation_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_264_nodes_allocation_delete_admin ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_172_volume_connectors_post_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_172_volume_connectors_post_admin ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_idrac +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_idrac ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties ... ok +WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_202_lessee_manager_cannot_post_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_202_lessee_manager_cannot_post_vendor_passthru ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_265_nodes_allocation_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_265_nodes_allocation_delete_member ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c6d2265d-3347-46d8-ab0d-f0d222452f6a +Openstack-Request-Id: req-6ae82574-4b12-46b5-903d-f406c0bd683d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/properties -GET: /v1/drivers/fake-driverz/properties {} -GOT:Response: 404 Not Found +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-37aef1b5-3f96-458c-ab03-e348b9d94ac8 +Openstack-Request-Id: req-6ae82574-4b12-46b5-903d-f406c0bd683d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"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"}]} +API ACL Testing Path get /v1/volume/connectors +GET: /v1/volume/connectors {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-37aef1b5-3f96-458c-ab03-e348b9d94ac8 +Openstack-Request-Id: req-b02b3c11-31af-48cc-9f3e-7f5da45f1a1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/properties -GET: /v1/drivers/fake-driverz/properties {} -GOT:Response: 404 Not Found +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-56359853-e4fe-48d8-8b8b-ae7bfedef0bc +Openstack-Request-Id: req-b02b3c11-31af-48cc-9f3e-7f5da45f1a1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"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"}]} +API ACL Testing Path get /v1/volume/connectors +GET: /v1/volume/connectors {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-56359853-e4fe-48d8-8b8b-ae7bfedef0bc +Openstack-Request-Id: req-b04fc0f0-0be7-4c5f-a7a8-d618b142f29b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties -GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} -GOT:Response: 404 Not Found +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-325dcbb7-6a13-4de9-8410-1e5ee6ebb31c +Openstack-Request-Id: req-b04fc0f0-0be7-4c5f-a7a8-d618b142f29b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"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"}]} +API ACL Testing Path get /v1/volume/connectors +GET: /v1/volume/connectors {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-325dcbb7-6a13-4de9-8410-1e5ee6ebb31c +Openstack-Request-Id: req-5d2ed06d-27b6-4af7-a357-2359c1502592 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties -GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} -GOT:Response: 404 Not Found +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d96255cf-bd8c-4b35-b95e-2b3072fe0bc2 +Openstack-Request-Id: req-5d2ed06d-27b6-4af7-a357-2359c1502592 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"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"}]} +API ACL Testing Path post /v1/volume/connectors +POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-d96255cf-bd8c-4b35-b95e-2b3072fe0bc2 +Location: http://localhost/v1/volume/connectors/cea2a072-7c31-43b9-a034-57c737db8212 +Openstack-Request-Id: req-346da6a5-06b3-44f0-9525-e95145fc6d77 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties -GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} -GOT:Response: 404 Not Found +{"uuid": "cea2a072-7c31-43b9-a034-57c737db8212", "created_at": "2024-01-06T15:35:47.425151+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/cea2a072-7c31-43b9-a034-57c737db8212", "rel": "self"}, {"href": "http://localhost/volume/connectors/cea2a072-7c31-43b9-a034-57c737db8212", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-310ce11b-94e8-4cbc-8260-5e6c1dd94e50 +Location: http://localhost/v1/volume/connectors/cea2a072-7c31-43b9-a034-57c737db8212 +Openstack-Request-Id: req-346da6a5-06b3-44f0-9525-e95145fc6d77 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"uuid": "cea2a072-7c31-43b9-a034-57c737db8212", "created_at": "2024-01-06T15:35:47.425151+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/cea2a072-7c31-43b9-a034-57c737db8212", "rel": "self"}, {"href": "http://localhost/volume/connectors/cea2a072-7c31-43b9-a034-57c737db8212", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +API ACL Testing Path post /v1/volume/connectors +POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-310ce11b-94e8-4cbc-8260-5e6c1dd94e50 +Location: http://localhost/v1/volume/connectors/1f2fffc6-c47e-40ed-bcdb-68fdf4e643df +Openstack-Request-Id: req-a86cecf0-c92a-4ce4-ba73-bf497a630e01 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods -GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_202_lessee_manager_cannot_post_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_202_lessee_manager_cannot_post_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_219_drivers_vendor_passthru_methods_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_219_drivers_vendor_passthru_methods_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_126_portgroups_portgroup_ident_patch_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_126_portgroups_portgroup_ident_patch_observer ... ok +{"uuid": "1f2fffc6-c47e-40ed-bcdb-68fdf4e643df", "created_at": "2024-01-06T15:35:47.702311+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/1f2fffc6-c47e-40ed-bcdb-68fdf4e643df", "rel": "self"}, {"href": "http://localhost/volume/connectors/1f2fffc6-c47e-40ed-bcdb-68fdf4e643df", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_173_volume_connectors_post_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_173_volume_connectors_post_member ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector ... ok +WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_266_nodes_allocation_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_266_nodes_allocation_delete_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_203_lessee_member_cannot_post_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_203_lessee_member_cannot_post_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_220_drivers_vendor_passthru_methods_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_220_drivers_vendor_passthru_methods_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_267_deploy_templates_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_267_deploy_templates_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_127_portgroups_portgroup_ident_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_127_portgroups_portgroup_ident_delete_admin ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_indicator_state +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_indicator_state ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_220_drivers_vendor_passthru_methods_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_220_drivers_vendor_passthru_methods_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_174_volume_connectors_post_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_174_volume_connectors_post_reader ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail ... ok +WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_204_lessee_reader_cannot_post_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_204_lessee_reader_cannot_post_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_221_drivers_vendor_passthru_methods_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_221_drivers_vendor_passthru_methods_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_268_deploy_templates_post_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_268_deploy_templates_post_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_128_portgroups_portgroup_ident_delete_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_128_portgroups_portgroup_ident_delete_member ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_267_deploy_templates_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_267_deploy_templates_post_admin ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_bios +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_bios ... ok +WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_member ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_175_volume_volume_connector_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_175_volume_volume_connector_id_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_205_owner_admin_cannot_put_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_205_owner_admin_cannot_put_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_222_drivers_vendor_passthru_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_222_drivers_vendor_passthru_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_268_deploy_templates_post_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_268_deploy_templates_post_member ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_inspect +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_inspect ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok ... ok +ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_connection_problem +ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_connection_problem ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_176_volume_volume_connector_id_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_176_volume_volume_connector_id_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_observer ... ok +WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-af46a0c3-4caa-424b-adf3-5e496ba83031 +Openstack-Request-Id: req-d44ef96b-5337-497a-ae83-cf646f1c5a7b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 04fa3a4a-c2bb-4263-a087-e4aae8a8edba could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/67407792-5915-49ca-ba3b-1592c8d1a605 -PATCH: /v1/allocations/67407792-5915-49ca-ba3b-1592c8d1a605 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 6e205575-9ab5-48a8-ae86-020a8bca1aec could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/allocations/6dda755b-d93a-4e5b-bae8-baf22c8210d5 +PATCH: /v1/allocations/6dda755b-d93a-4e5b-bae8-baf22c8210d5 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-08ab890d-aa15-4448-b579-480eb19de415 +Openstack-Request-Id: req-6ee831dd-8ba2-4dbc-bfe0-8de83ac02522 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 67407792-5915-49ca-ba3b-1592c8d1a605 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/07d45670-6086-4459-911d-b9d590abfe35 -PATCH: /v1/allocations/07d45670-6086-4459-911d-b9d590abfe35 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 6dda755b-d93a-4e5b-bae8-baf22c8210d5 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/allocations/3e0f22c1-b410-4186-bd5e-27ab76341dd4 +PATCH: /v1/allocations/3e0f22c1-b410-4186-bd5e-27ab76341dd4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b78cd86f-30c9-41d4-aca7-b54978c3ba63 +Openstack-Request-Id: req-fafbeb46-9199-4424-b5fc-3a9f6453ec4e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 07d45670-6086-4459-911d-b9d590abfe35 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/9e694f6a-f029-4a52-9d1b-53bde32cab19 -DELETE: /v1/allocations/9e694f6a-f029-4a52-9d1b-53bde32cab19 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 3e0f22c1-b410-4186-bd5e-27ab76341dd4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/4582c283-0506-49e6-850c-1da376b7f078 +DELETE: /v1/allocations/4582c283-0506-49e6-850c-1da376b7f078 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-cc5dee2e-63ab-4426-bd37-947a3e8f6a88 +Openstack-Request-Id: req-0ebadbab-1870-4ab7-aadb-f9685bf0d574 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 9e694f6a-f029-4a52-9d1b-53bde32cab19 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/418d51b9-decd-41c9-852c-9ffe0c6434d2 -DELETE: /v1/allocations/418d51b9-decd-41c9-852c-9ffe0c6434d2 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 4582c283-0506-49e6-850c-1da376b7f078 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/6a993bc2-836f-48dd-8ca4-7b00b76d46be +DELETE: /v1/allocations/6a993bc2-836f-48dd-8ca4-7b00b76d46be GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b8f097b6-ea3a-474c-85a6-f850aa7403b4 +Openstack-Request-Id: req-0c80701d-1307-4bd5-8e36-fcfa84c5f495 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 418d51b9-decd-41c9-852c-9ffe0c6434d2 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/cea68a5e-95b1-4359-a4fa-2c22814e8e66 -DELETE: /v1/allocations/cea68a5e-95b1-4359-a4fa-2c22814e8e66 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 6a993bc2-836f-48dd-8ca4-7b00b76d46be could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/3f7a1e0d-7020-474b-ad6b-b3822063c6a5 +DELETE: /v1/allocations/3f7a1e0d-7020-474b-ad6b-b3822063c6a5 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5c8b50c1-eef6-4579-bb1d-4d25b01198bc +Openstack-Request-Id: req-c84459ee-3696-42ab-8fb0-549e915c9680 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation cea68a5e-95b1-4359-a4fa-2c22814e8e66 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 3f7a1e0d-7020-474b-ad6b-b3822063c6a5 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-64e5505c-ba2a-4651-a68b-a243ff007f76 +Openstack-Request-Id: req-d0f0f00f-cf07-4f33-822d-16ada7f704c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38870,7 +38829,7 @@ GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7e8a87ba-82b2-4fb7-9d12-7d86387f91be +Openstack-Request-Id: req-3b8adaf0-4ff6-4798-a71b-c33680cacc2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38879,7 +38838,7 @@ GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0b202c76-a016-431d-9601-1d7ea29e5c0e +Openstack-Request-Id: req-58c60bbb-9257-4a42-8c29-00d8d459f4b0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38888,7 +38847,7 @@ DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4b131ad6-d624-4fbe-96ad-edd8b10f6197 +Openstack-Request-Id: req-d661c807-604a-4225-b083-f63add9d2d34 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38897,7 +38856,7 @@ DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-01c88048-3a04-4180-ad3b-5fa9394c42bd +Openstack-Request-Id: req-b9eded87-3efa-43b6-a28a-d7df08f05787 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38906,7 +38865,7 @@ DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fd38f3e0-b507-41c8-95b0-0c13788a05da +Openstack-Request-Id: req-09489809-a94b-44eb-aff9-b43d02badf07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38915,7 +38874,7 @@ POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-7310552b-7cca-4843-a7f1-376b7f8ee63a +Openstack-Request-Id: req-210192bc-0fd6-423b-a928-1323371c6cad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38924,7 +38883,7 @@ POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-8f04dc1c-7837-47a1-ac30-6d2453b86a24 +Openstack-Request-Id: req-3b87d9a7-1b70-4dd3-a424-e71c622c6f22 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -38933,185 +38892,211 @@ POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_269_deploy_templates_post_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_269_deploy_templates_post_observer ... ok -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-5c290a68-e197-4421-b917-a16b8a7e82d8 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:Response: 200 OK +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_206_owner_manager_cannot_put_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_206_owner_manager_cannot_put_vendor_passthru ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_management_and_power +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_management_and_power ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_223_drivers_vendor_passthru_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_223_drivers_vendor_passthru_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_177_volume_volume_connector_id_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_177_volume_volume_connector_id_get_reader ... ok +WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_270_deploy_templates_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_270_deploy_templates_get_admin ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_207_owner_member_cannot_put_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_207_owner_member_cannot_put_vendor_passthru ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_raid +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_raid ... ok +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b8c4d5aa-9804-4a97-ad2b-c2ebebce1235 +Openstack-Request-Id: req-bc09147c-91b8-4e10-bbfe-a92c36db6034 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:34:01.886949+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_properties\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b8c4d5aa-9804-4a97-ad2b-c2ebebce1235 +Openstack-Request-Id: req-bc09147c-91b8-4e10-bbfe-a92c36db6034 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:34:01.886949+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} -API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_properties\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/properties +GET: /v1/drivers/fake-driverz/properties {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9c895d92-3168-480a-b0f4-910b1be6f70a +Openstack-Request-Id: req-630e1855-0f5c-4048-ac09-daa38e35e912 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9c895d92-3168-480a-b0f4-910b1be6f70a +Openstack-Request-Id: req-630e1855-0f5c-4048-ac09-daa38e35e912 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties +GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-22f272cb-978b-492f-bfc4-d28f2acf1ce4 +Openstack-Request-Id: req-33e36e79-d411-4891-bea1-93375af341b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-22f272cb-978b-492f-bfc4-d28f2acf1ce4 +Openstack-Request-Id: req-33e36e79-d411-4891-bea1-93375af341b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties +GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-85d18c1d-5457-416a-8b55-1c920bd16791 +Openstack-Request-Id: req-0bceaca7-e6ef-469f-9795-12a05b689b75 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_raid_logical_disk_properties\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-85d18c1d-5457-416a-8b55-1c920bd16791 +Openstack-Request-Id: req-0bceaca7-e6ef-469f-9795-12a05b689b75 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_raid_logical_disk_properties\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties +GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5d61287d-9ff0-45df-ad85-266082f2de01 +Openstack-Request-Id: req-bf093d0b-a96e-4958-bffe-8309a4b7d495 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5d61287d-9ff0-45df-ad85-266082f2de01 +Openstack-Request-Id: req-bf093d0b-a96e-4958-bffe-8309a4b7d495 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods +GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ec116d2c-bf00-4325-add3-4375b0cde5e6 +Openstack-Request-Id: req-1ae8635d-cad4-4bc3-bfba-4cbbdbac7a55 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ec116d2c-bf00-4325-add3-4375b0cde5e6 +Openstack-Request-Id: req-1ae8635d-cad4-4bc3-bfba-4cbbdbac7a55 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods +GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e6815bf4-25c6-422c-a53f-42018484ae52 +Openstack-Request-Id: req-0a7a117d-70a7-40d8-8609-6bc72e78ed69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_129_portgroups_portgroup_ident_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_129_portgroups_portgroup_ident_delete_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_223_drivers_vendor_passthru_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_223_drivers_vendor_passthru_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_206_owner_manager_cannot_put_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_206_owner_manager_cannot_put_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_270_deploy_templates_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_270_deploy_templates_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_130_nodes_portgroups_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_130_nodes_portgroups_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_224_drivers_vendor_passthru_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_224_drivers_vendor_passthru_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_207_owner_member_cannot_put_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_207_owner_member_cannot_put_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_131_nodes_portgroups_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_131_nodes_portgroups_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_271_deploy_templates_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_271_deploy_templates_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_225_drivers_vendor_passthru_post_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_225_drivers_vendor_passthru_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_208_owner_reader_cannot_put_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_208_owner_reader_cannot_put_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_132_nodes_portgroups_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_132_nodes_portgroups_get_observer ... ok -POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test None +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-0a7a117d-70a7-40d8-8609-6bc72e78ed69 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods +GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9b728224-a568-4ced-964f-2017d2024e1a +Openstack-Request-Id: req-27416ce5-7198-4e6b-b7dd-621257a28992 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9b728224-a568-4ced-964f-2017d2024e1a +Openstack-Request-Id: req-27416ce5-7198-4e6b-b7dd-621257a28992 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test -POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test None -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test +GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f1753a4e-829f-4321-be6e-3bde2c4d126d +Openstack-Request-Id: req-69d28d67-08be-46ed-a09a-e876bc3f76d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f1753a4e-829f-4321-be6e-3bde2c4d126d +Openstack-Request-Id: req-69d28d67-08be-46ed-a09a-e876bc3f76d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_224_drivers_vendor_passthru_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_224_drivers_vendor_passthru_get_member ... ok +WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_indicator_state_good +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_indicator_state_good ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_178_volume_volume_connector_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_178_volume_volume_connector_id_patch_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_208_owner_reader_cannot_put_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_208_owner_reader_cannot_put_vendor_passthru ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_271_deploy_templates_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_271_deploy_templates_get_member ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_225_drivers_vendor_passthru_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_225_drivers_vendor_passthru_get_observer ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_virtual_media_boot +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_virtual_media_boot ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail ... ok +ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone +ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_create +ironic.tests.unit.objects.test_port.TestPortObject.test_create ... ok POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-977c8609-c6d6-41c0-9bdf-a5fd7dcdde33 +Openstack-Request-Id: req-c6d9a476-a906-4e9b-8898-d68c04e6cb49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-977c8609-c6d6-41c0-9bdf-a5fd7dcdde33 +Openstack-Request-Id: req-c6d9a476-a906-4e9b-8898-d68c04e6cb49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39120,46 +39105,46 @@ POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-697f5795-3ee3-45ba-b02e-5738c2224b73 +Openstack-Request-Id: req-a8e133cc-c248-4d23-b439-1a8df1d13e82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-697f5795-3ee3-45ba-b02e-5738c2224b73 +Openstack-Request-Id: req-a8e133cc-c248-4d23-b439-1a8df1d13e82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test None +API ACL Testing Path post /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test +POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9fb18162-7484-4c98-8489-c321a241f1c4 +Openstack-Request-Id: req-36259303-1268-44af-8e06-1b28a0ad7a96 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9fb18162-7484-4c98-8489-c321a241f1c4 +Openstack-Request-Id: req-36259303-1268-44af-8e06-1b28a0ad7a96 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test None +API ACL Testing Path post /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test +POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ada4f51a-3c22-4a7e-9e24-df6f1498287d +Openstack-Request-Id: req-08ddeb4c-263d-4322-bb00-dc01b66cfd1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ada4f51a-3c22-4a7e-9e24-df6f1498287d +Openstack-Request-Id: req-08ddeb4c-263d-4322-bb00-dc01b66cfd1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39168,14 +39153,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2a224198-678b-4861-bc64-70d2262748e0 +Openstack-Request-Id: req-e9720302-a34e-4690-8d89-11615e926475 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2a224198-678b-4861-bc64-70d2262748e0 +Openstack-Request-Id: req-e9720302-a34e-4690-8d89-11615e926475 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39184,308 +39169,365 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ee47054f-cd3f-4f3e-80ba-a1dd9dcf3b63 +Openstack-Request-Id: req-a444a133-87fa-4fb7-9dde-ff743a79ded4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ee47054f-cd3f-4f3e-80ba-a1dd9dcf3b63 +Openstack-Request-Id: req-a444a133-87fa-4fb7-9dde-ff743a79ded4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_272_deploy_templates_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_272_deploy_templates_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_226_drivers_vendor_passthru_post_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_226_drivers_vendor_passthru_post_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_209_lessee_admin_cannot_put_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_209_lessee_admin_cannot_put_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_133_nodes_portgroups_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_133_nodes_portgroups_detail_get_admin ... ok -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-9da4deb9-4624-4942-a7b2-c9a5811c89e1 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-9da4deb9-4624-4942-a7b2-c9a5811c89e1 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods -GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0caff3cb-bb64-4a04-a4ca-5f4740c58678 +Openstack-Request-Id: req-4871d5a1-cf1f-46b5-87e0-b71be9573077 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0caff3cb-bb64-4a04-a4ca-5f4740c58678 +Openstack-Request-Id: req-4871d5a1-cf1f-46b5-87e0-b71be9573077 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods -GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-91c059b3-9013-4723-a696-2d3c645911b4 +Openstack-Request-Id: req-8f9d0ace-b1cf-46b2-a543-d90f988a4d69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-91c059b3-9013-4723-a696-2d3c645911b4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test -GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-1782ad2f-2e5d-4deb-a24f-d44e111c91d6 +Openstack-Request-Id: req-8f9d0ace-b1cf-46b2-a543-d90f988a4d69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-1782ad2f-2e5d-4deb-a24f-d44e111c91d6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test -GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-10b8856e-bcf9-46a8-817d-bdac7d0ec86f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-10b8856e-bcf9-46a8-817d-bdac7d0ec86f +Location: http://localhost/v1/volume/connectors/1f2fffc6-c47e-40ed-bcdb-68fdf4e643df +Openstack-Request-Id: req-a86cecf0-c92a-4ce4-ba73-bf497a630e01 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test -GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} +{"uuid": "1f2fffc6-c47e-40ed-bcdb-68fdf4e643df", "created_at": "2024-01-06T15:35:47.702311+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/1f2fffc6-c47e-40ed-bcdb-68fdf4e643df", "rel": "self"}, {"href": "http://localhost/volume/connectors/1f2fffc6-c47e-40ed-bcdb-68fdf4e643df", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +API ACL Testing Path post /v1/volume/connectors +POST: /v1/volume/connectors {'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-60e56929-5353-4472-831e-7954e1054c96 +Openstack-Request-Id: req-48d72957-7fdc-403e-a28b-3e951d108c27 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-60e56929-5353-4472-831e-7954e1054c96 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/drivers/fake-driverz/vendor_passthru?method=test -POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-88caf97b-5c89-4ba1-95e1-29e5cc8d8de8 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-88caf97b-5c89-4ba1-95e1-29e5cc8d8de8 +Openstack-Request-Id: req-48d72957-7fdc-403e-a28b-3e951d108c27 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/drivers/fake-driverz/vendor_passthru?method=test -POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7d132c3e-4610-4ea1-ae28-316d0e59ca68 +Openstack-Request-Id: req-298c380a-2657-4824-b6d4-512a42f2a7e8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:48.237026+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"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7d132c3e-4610-4ea1-ae28-316d0e59ca68 +Openstack-Request-Id: req-298c380a-2657-4824-b6d4-512a42f2a7e8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/drivers/fake-driverz/vendor_passthru?method=test -POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:48.237026+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"} +API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c9199b22-911c-4682-83a2-5f57c978703c +Openstack-Request-Id: req-29a6bc22-1774-47d6-a5fd-d6694be394a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_227_drivers_vendor_passthru_post_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_227_drivers_vendor_passthru_post_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_210_lessee_manager_cannot_put_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_210_lessee_manager_cannot_put_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_273_deploy_templates_deploy_template_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_273_deploy_templates_deploy_template_id_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_134_nodes_portgroups_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_134_nodes_portgroups_detail_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_228_drivers_vendor_passthru_put_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_228_drivers_vendor_passthru_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_211_lessee_member_cannot_put_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_211_lessee_member_cannot_put_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_member ... ok -ACL Test GOT Response: 403 Forbidden +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:48.462414+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"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e6815bf4-25c6-422c-a53f-42018484ae52 +Openstack-Request-Id: req-29a6bc22-1774-47d6-a5fd-d6694be394a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:48.462414+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"} +API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-da9f5b62-317b-4d28-90cd-7ba88ae708c6 +Openstack-Request-Id: req-8b0076e2-d0f9-45fd-894e-37508bb1570e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:48.693750+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"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-da9f5b62-317b-4d28-90cd-7ba88ae708c6 +Openstack-Request-Id: req-8b0076e2-d0f9-45fd-894e-37508bb1570e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-9077bd7c-3d59-41c0-b54f-75266aa6eaa4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:48.693750+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"} +API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-9077bd7c-3d59-41c0-b54f-75266aa6eaa4 +Openstack-Request-Id: req-4d92911b-4d35-4482-b436-9a7e109d0121 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-51f00b80-43d1-45f1-bcbd-bd438f579a2d +Openstack-Request-Id: req-4d92911b-4d35-4482-b436-9a7e109d0121 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-51f00b80-43d1-45f1-bcbd-bd438f579a2d +Openstack-Request-Id: req-35a652ee-4a17-496b-9874-7c43d65fce11 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_209_lessee_admin_cannot_put_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_209_lessee_admin_cannot_put_vendor_passthru ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_name_and_address +ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_name_and_address ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_179_volume_volume_connector_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_179_volume_volume_connector_id_patch_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_272_deploy_templates_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_272_deploy_templates_get_observer ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok ... ok +ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_226_drivers_vendor_passthru_post_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_226_drivers_vendor_passthru_post_admin ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address ... ok +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_210_lessee_manager_cannot_put_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_210_lessee_manager_cannot_put_vendor_passthru ... ok +ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_raid +ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_raid ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_180_volume_volume_connector_id_patch_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_180_volume_volume_connector_id_patch_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_227_drivers_vendor_passthru_post_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_227_drivers_vendor_passthru_post_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_273_deploy_templates_deploy_template_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_273_deploy_templates_deploy_template_id_get_admin ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_name +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_name ... ok +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue ... ok +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_228_drivers_vendor_passthru_post_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_228_drivers_vendor_passthru_post_observer ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes ... ok +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_211_lessee_member_cannot_put_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_211_lessee_member_cannot_put_vendor_passthru ... ok +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_181_volume_volume_connector_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_181_volume_volume_connector_id_delete_admin ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_list +ironic.tests.unit.objects.test_port.TestPortObject.test_list ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_list_deprecated_owner +ironic.tests.unit.objects.test_port.TestPortObject.test_list_deprecated_owner ... ok +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector ... ok +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_229_drivers_vendor_passthru_put_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_229_drivers_vendor_passthru_put_admin ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas +ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_212_lessee_reader_cannot_put_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_212_lessee_reader_cannot_put_vendor_passthru ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_182_volume_volume_connector_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_182_volume_volume_connector_id_delete_member ... ok +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_refresh +ironic.tests.unit.objects.test_port.TestPortObject.test_refresh ... ok +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_276_deploy_templates_deploy_template_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_276_deploy_templates_deploy_template_id_patch_admin ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_save +ironic.tests.unit.objects.test_port.TestPortObject.test_save ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_230_drivers_vendor_passthru_put_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_230_drivers_vendor_passthru_put_member ... ok +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_213_owner_admin_cannot_delete_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_213_owner_admin_cannot_delete_vendor_passthru ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good ... ok +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_183_volume_volume_connector_id_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_183_volume_volume_connector_id_delete_reader ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh +ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported +ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_231_drivers_vendor_passthru_put_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_231_drivers_vendor_passthru_put_observer ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_member ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported +ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported ... ok +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_214_owner_manager_cannot_delete_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_214_owner_manager_cannot_delete_vendor_passthru ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported +ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_184_volume_targets_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_184_volume_targets_get_admin ... ok +ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce +ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name ... ok +ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values +ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported +ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin ... skipped 'not updated for scope testing' GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8c6c0f9a-12a1-412f-999b-8d1f61707e0f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:34:20.545927+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-8c6c0f9a-12a1-412f-999b-8d1f61707e0f +Openstack-Request-Id: req-fe7ec027-7c46-497c-a9c6-baec12d161e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:34:20.545927+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.1 +{"cat": "meow"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru {'foo': 'bar'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-daaed8e4-9195-42fc-a242-1dba2edd8565 +Openstack-Request-Id: req-749c3bed-6bdc-49bf-afaa-ab5c2d227f0f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: method\", \"debuginfo\": null}"} +GET: /v1/ {} +GOT:{'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.80'}, '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'}]} +GET: /v1/ {} +GOT:{'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.80'}, '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'}]} +GET: /v1/ {} +GOT:{'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.80'}, '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'}]} +GET: /v1/ {} +GOT:{'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.80'}} +{'links': [{'id': 'port1', 'type': 'vif', 'ethernet_mac_address': '52:54:00:4f:ef:b7', 'vif_id': '96d4bfb9-b26e-41f3-bd2e-e6dcc1ccedb8', 'mtu': 1500}], 'networks': [{'id': '906e685a-b964-4d58-9939-9cf3af197c67', 'network_id': 'a87cc70a-3e15-4acf-8205-9b711a3531b7', 'type': 'ipv6', 'link': 'port1', 'ip_address': 'fd00:203:0:113::2', 'netmask': 'ffff:ffff:ffff:ffff::', 'routes': [{'network': '::0', 'netmask': '::0', 'gateway': 'fd00:203:0:113::1'}]}]} +ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation +ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid ... ok +ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra +ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_215_owner_member_cannot_delete_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_215_owner_member_cannot_delete_vendor_passthru ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_233_drivers_vendor_passthru_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_233_drivers_vendor_passthru_delete_observer ... skipped 'not updated for scope testing' +ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info +ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_185_volume_targets_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_185_volume_targets_get_member ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id ... ok +ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version +ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console ... ok +ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra +ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas ... ok +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-daaed8e4-9195-42fc-a242-1dba2edd8565 +Openstack-Request-Id: req-8270ba3c-43ea-4df5-b678-7ae574f8c279 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_135_nodes_portgroups_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_135_nodes_portgroups_detail_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_229_drivers_vendor_passthru_put_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_229_drivers_vendor_passthru_put_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_212_lessee_reader_cannot_put_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_212_lessee_reader_cannot_put_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_136_ports_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_136_ports_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_230_drivers_vendor_passthru_put_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_230_drivers_vendor_passthru_put_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_213_owner_admin_cannot_delete_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_213_owner_admin_cannot_delete_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_276_deploy_templates_deploy_template_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_276_deploy_templates_deploy_template_id_patch_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_137_ports_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_137_ports_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_231_drivers_vendor_passthru_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_231_drivers_vendor_passthru_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_214_owner_manager_cannot_delete_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_214_owner_manager_cannot_delete_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_138_ports_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_138_ports_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_232_drivers_vendor_passthru_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_232_drivers_vendor_passthru_delete_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_215_owner_member_cannot_delete_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_215_owner_member_cannot_delete_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_139_ports_post_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_139_ports_post_admin ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dddce982-d2e2-4c5c-a358-de1833ff81ea +Openstack-Request-Id: req-2c8154b6-3636-4e7f-b531-e8a88ade0cd4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dddce982-d2e2-4c5c-a358-de1833ff81ea +Openstack-Request-Id: req-2c8154b6-3636-4e7f-b531-e8a88ade0cd4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39494,14 +39536,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c3d92ea0-be42-4c73-9792-8b1376d4252f +Openstack-Request-Id: req-f54ee859-77a5-4646-97cc-967ea22aecdb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c3d92ea0-be42-4c73-9792-8b1376d4252f +Openstack-Request-Id: req-f54ee859-77a5-4646-97cc-967ea22aecdb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39510,14 +39552,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1157b07a-b3d4-4b7f-8357-8162492fff74 +Openstack-Request-Id: req-b39765fe-36ad-4c52-8fa7-9618aea39cc0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1157b07a-b3d4-4b7f-8357-8162492fff74 +Openstack-Request-Id: req-b39765fe-36ad-4c52-8fa7-9618aea39cc0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39526,14 +39568,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4fd17d52-257c-418d-b28c-c99bf109db27 +Openstack-Request-Id: req-07bd4017-f2ed-448c-a806-df0665f87aef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4fd17d52-257c-418d-b28c-c99bf109db27 +Openstack-Request-Id: req-07bd4017-f2ed-448c-a806-df0665f87aef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39542,14 +39584,14 @@ DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-33c7abc1-1746-4975-ac6d-ca888bcc19b7 +Openstack-Request-Id: req-3c31db9f-0d39-4b05-bfb9-dd1e6ff3e458 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-33c7abc1-1746-4975-ac6d-ca888bcc19b7 +Openstack-Request-Id: req-3c31db9f-0d39-4b05-bfb9-dd1e6ff3e458 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39558,14 +39600,14 @@ DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d325206c-9f25-47c5-b223-95928291a02e +Openstack-Request-Id: req-c810a814-b415-4fa8-86d8-2e23a50589b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d325206c-9f25-47c5-b223-95928291a02e +Openstack-Request-Id: req-c810a814-b415-4fa8-86d8-2e23a50589b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39574,14 +39616,14 @@ DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8bb77762-1d7f-432b-8fe8-b4be36ac9df0 +Openstack-Request-Id: req-626807f3-ad2e-40e1-9e25-b0259f3cd363 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8bb77762-1d7f-432b-8fe8-b4be36ac9df0 +Openstack-Request-Id: req-626807f3-ad2e-40e1-9e25-b0259f3cd363 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39590,275 +39632,365 @@ DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-67fe9f36-afdc-4da2-8c9f-4b143ff396e7 +Openstack-Request-Id: req-8c5650f8-ee8c-41cd-8f3c-ef2fa0edc85d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_233_nodes_bios_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_233_nodes_bios_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_216_owner_reader_cannot_delete_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_216_owner_reader_cannot_delete_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_140_ports_post_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_140_ports_post_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_234_nodes_bios_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_234_nodes_bios_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_217_lessee_admin_cannot_delete_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_217_lessee_admin_cannot_delete_vendor_passthru ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_279_deploy_templates_deploy_template_id_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_279_deploy_templates_deploy_template_id_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_141_ports_post_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_141_ports_post_observer ... ok +API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test +GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-fef338e0-b04f-40e9-ba72-133bd93d3879 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c9199b22-911c-4682-83a2-5f57c978703c +Openstack-Request-Id: req-fef338e0-b04f-40e9-ba72-133bd93d3879 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/drivers/fake-driverz/vendor_passthru?method=test -PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None +API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test +GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-b56eaa83-e907-40bf-b0fe-4b149f795d82 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-b56eaa83-e907-40bf-b0fe-4b149f795d82 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/drivers/fake-driverz/vendor_passthru?method=test +POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2afb8697-1977-4b1e-b4a6-f10c01f4e231 +Openstack-Request-Id: req-7cbceab6-1927-45eb-bbb5-32fd8da70af1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2afb8697-1977-4b1e-b4a6-f10c01f4e231 +Openstack-Request-Id: req-7cbceab6-1927-45eb-bbb5-32fd8da70af1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/drivers/fake-driverz/vendor_passthru?method=test -PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None +API ACL Testing Path post /v1/drivers/fake-driverz/vendor_passthru?method=test +POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8a0e7655-feaa-46f6-a3ba-59371907f289 +Openstack-Request-Id: req-c34f4f8d-9e06-4c21-a66d-63b874e37e72 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8a0e7655-feaa-46f6-a3ba-59371907f289 +Openstack-Request-Id: req-c34f4f8d-9e06-4c21-a66d-63b874e37e72 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/drivers/fake-driverz/vendor_passthru?method=test -PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None +API ACL Testing Path post /v1/drivers/fake-driverz/vendor_passthru?method=test +POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cd4617cb-0e87-4a64-810f-024c03c1d050 +Openstack-Request-Id: req-38ecdf24-cac8-49e3-b521-0e41862a249f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cd4617cb-0e87-4a64-810f-024c03c1d050 +Openstack-Request-Id: req-38ecdf24-cac8-49e3-b521-0e41862a249f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/drivers/fake-driverz/vendor_passthru?method=test -DELETE: /v1/drivers/fake-driverz/vendor_passthru?method=test +API ACL Testing Path put /v1/drivers/fake-driverz/vendor_passthru?method=test +PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7d927963-4ce2-4e69-8473-f20cf3320801 +Openstack-Request-Id: req-826bdb5a-94c1-4449-9d1d-93ad173e5739 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7d927963-4ce2-4e69-8473-f20cf3320801 +Openstack-Request-Id: req-826bdb5a-94c1-4449-9d1d-93ad173e5739 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/drivers/fake-driverz/vendor_passthru?method=test -DELETE: /v1/drivers/fake-driverz/vendor_passthru?method=test +API ACL Testing Path put /v1/drivers/fake-driverz/vendor_passthru?method=test +PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b705cb26-3aba-437a-bb06-a8abd72f2e7c +Openstack-Request-Id: req-7956b86f-6ba9-49ed-b63a-6e1809dba173 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b705cb26-3aba-437a-bb06-a8abd72f2e7c +Openstack-Request-Id: req-7956b86f-6ba9-49ed-b63a-6e1809dba173 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} -GOT:Response: 200 OK +API ACL Testing Path put /v1/drivers/fake-driverz/vendor_passthru?method=test +PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c8a9d321-1621-44c2-a0be-87df9d688c23 +Openstack-Request-Id: req-4e620ddb-2f8f-4637-98ad-478c8835dd0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"bios": [{"created_at": "2025-02-07T21:34:30.986286+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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c8a9d321-1621-44c2-a0be-87df9d688c23 +Openstack-Request-Id: req-4e620ddb-2f8f-4637-98ad-478c8835dd0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"bios": [{"created_at": "2025-02-07T21:34:30.986286+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"}]}]} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} -GOT:Response: 200 OK +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_234_nodes_bios_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_234_nodes_bios_get_admin ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save ... ok +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b49fe2af-9e48-41f1-888b-1360bfeebcf3 +Openstack-Request-Id: req-35a652ee-4a17-496b-9874-7c43d65fce11 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"bios": [{"created_at": "2025-02-07T21:34:32.391791+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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b49fe2af-9e48-41f1-888b-1360bfeebcf3 +Openstack-Request-Id: req-13a51536-fc24-400a-8580-8f806e3c564b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"bios": [{"created_at": "2025-02-07T21:34:32.391791+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"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_235_nodes_bios_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_235_nodes_bios_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_218_lessee_manager_cannot_delete_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_218_lessee_manager_cannot_delete_vendor_passthru ... ok -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ca7c2193-ca3d-43f9-be38-c261fe10c0d4 +Openstack-Request-Id: req-13a51536-fc24-400a-8580-8f806e3c564b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:34:24.060807+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ca7c2193-ca3d-43f9-be38-c261fe10c0d4 +Openstack-Request-Id: req-1cc0fa86-5a6d-4351-a85e-a88740d78d37 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:34:24.060807+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/ports -GET: /v1/ports {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-04fb9b9e-4115-4bfb-9737-1741eeadaf6a +Openstack-Request-Id: req-1cc0fa86-5a6d-4351-a85e-a88740d78d37 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-04fb9b9e-4115-4bfb-9737-1741eeadaf6a +Openstack-Request-Id: req-59627668-1851-46ea-9cde-a3a83b215f56 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/ports -GET: /v1/ports {} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-59627668-1851-46ea-9cde-a3a83b215f56 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a65465ad-5657-44c0-9349-3f8493871a8f +Openstack-Request-Id: req-038e1e91-c862-4039-98b8-5c692115b767 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a65465ad-5657-44c0-9349-3f8493871a8f +Openstack-Request-Id: req-038e1e91-c862-4039-98b8-5c692115b767 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/ports -GET: /v1/ports {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/targets +GET: /v1/volume/targets {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2728ce46-f1d7-451c-9610-e9612fccf525 +Openstack-Request-Id: req-67f58bad-7f4c-4378-b002-9fb6e4a2a6e3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} +{"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2728ce46-f1d7-451c-9610-e9612fccf525 +Openstack-Request-Id: req-67f58bad-7f4c-4378-b002-9fb6e4a2a6e3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} -GOT:Response: 400 Bad Request +{"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"}]} +API ACL Testing Path get /v1/volume/targets +GET: /v1/volume/targets {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-82cc9a1b-d7f9-409a-9b1c-2a60a0365049 +Openstack-Request-Id: req-b24d4533-09e6-4c84-99ac-077df4989740 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 400 Bad Request +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-82cc9a1b-d7f9-409a-9b1c-2a60a0365049 +Openstack-Request-Id: req-b24d4533-09e6-4c84-99ac-077df4989740 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} -GOT:Response: 403 Forbidden +{"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"}]} +API ACL Testing Path get /v1/volume/targets +GET: /v1/volume/targets {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d2bbbd1c-b4cc-46d5-afd8-0cdcd47f4018 +Openstack-Request-Id: req-10c5a861-8b5d-4622-8123-998f67d810cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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"}]} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_186_volume_targets_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_186_volume_targets_get_reader ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_217_lessee_admin_cannot_delete_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_217_lessee_admin_cannot_delete_vendor_passthru ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_235_nodes_bios_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_235_nodes_bios_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_member ... ok +ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute +ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute ... ok +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\"}"} +PATCH: /v1/deploy_templates/CUSTOM_DT1 [{'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-d2bbbd1c-b4cc-46d5-afd8-0cdcd47f4018 +Openstack-Request-Id: req-51747cbd-5302-4ba5-87a8-2799ea9d3d7e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} -GOT:Response: 403 Forbidden +{"uuid": "18b56b13-7c0f-48ac-a85f-3c1ac20626d7", "created_at": "2024-01-06T15:33:51.512118+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/18b56b13-7c0f-48ac-a85f-3c1ac20626d7", "rel": "self"}, {"href": "http://localhost/deploy_templates/18b56b13-7c0f-48ac-a85f-3c1ac20626d7", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "priority": 42}]} +PATCH: /v1/deploy_templates/CUSTOM_DT1 [{'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\"}"} +PATCH: /v1/deploy_templates/CUSTOM_DT1.json [{'path': '/steps/0/interface', 'value': 'bios', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cf870eb2-e541-46e4-ab76-4eb00f7d9353 +Openstack-Request-Id: req-3cd2b53b-60a5-4279-9da0-7785d38ca73c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "a4d2a817-7e00-4ccf-9a66-75ed48920f58", "created_at": "2024-01-06T15:33:52.161472+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a4d2a817-7e00-4ccf-9a66-75ed48920f58", "rel": "self"}, {"href": "http://localhost/deploy_templates/a4d2a817-7e00-4ccf-9a66-75ed48920f58", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +PATCH: /v1/deploy_templates/cf0c553b-6327-4246-afdf-12c5a4eb5d08 [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-cf870eb2-e541-46e4-ab76-4eb00f7d9353 +Openstack-Request-Id: req-a0705a88-81ff-46f7-8d22-1d0155898078 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/ports/detail -GET: /v1/ports/detail {} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_142_ports_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_142_ports_detail_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_236_nodes_bios_bios_setting_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_236_nodes_bios_bios_setting_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_219_lessee_member_cannot_delete_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_219_lessee_member_cannot_delete_vendor_passthru ... ok +{"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}"} +PATCH: /v1/deploy_templates/2fae120a-4abc-4684-8f9b-1632a8e4d866 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-600bb8ee-af60-48a2-b020-435d87b7d217 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "2fae120a-4abc-4684-8f9b-1632a8e4d866", "created_at": "2024-01-06T15:33:52.940474+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/2fae120a-4abc-4684-8f9b-1632a8e4d866", "rel": "self"}, {"href": "http://localhost/deploy_templates/2fae120a-4abc-4684-8f9b-1632a8e4d866", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +PATCH: /v1/deploy_templates/bfb3c0b9-3dce-4ace-85b8-9ef41a07efde [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-1b4917a9-58da-4873-8aa4-e28ae2f9bb7b +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "bfb3c0b9-3dce-4ace-85b8-9ef41a07efde", "created_at": "2024-01-06T15:33:53.292744+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/bfb3c0b9-3dce-4ace-85b8-9ef41a07efde", "rel": "self"}, {"href": "http://localhost/deploy_templates/bfb3c0b9-3dce-4ace-85b8-9ef41a07efde", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +PATCH: /v1/deploy_templates/3e5b3e13-a758-463c-ba67-aa64bf7fa049 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-dc75f842-5d33-4b45-9668-e420f49256b7 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template 3e5b3e13-a758-463c-ba67-aa64bf7fa049 could not be found.\", \"debuginfo\": null}"} +foo() migrated 15 of 15 objects. +func1() migrated 15 of 15 objects. +func2() migrated 20 of 20 objects. +func1() migrated 10 of 10 objects. +func2() migrated 0 of 0 objects. +func1() migrated 10 of 15 objects. +func1() migrated 10 of 10 objects. +func1() migrated 10 of 10 objects. +func1() migrated 0 of 0 objects. +func2() migrated 0 of 0 objects. +Running batches of 50 until migrations have been completed. +Data migrations have completed. +Running batches of 50 until migrations have been completed. +Data migrations have completed. +Running batches of 50 until migrations have been completed. +Malformed option m1key1=value1 +Malformed option m1.key1value1 +Data migrations have not completed. Please re-run. +Running batches of 50 until migrations have been completed. +Data migrations have completed. +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_187_volume_targets_post_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_187_volume_targets_post_admin ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail ... ok GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-147e6b92-22dc-4db0-9be6-b64c865ade5c +Openstack-Request-Id: req-650868e4-7b2b-4437-8ce1-01ab6ab05e95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39867,7 +39999,7 @@ GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-9a49607e-29dd-4e20-9901-7887da87d9d6 +Openstack-Request-Id: req-f5196508-3701-4589-bb4d-4bdda94b631c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39876,7 +40008,7 @@ GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-2422a02c-5b31-4413-a529-57457879d2c5 +Openstack-Request-Id: req-f4177573-997a-402d-ba48-d6d012416667 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -39885,294 +40017,362 @@ GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-39f6e3c1-0bcb-4e7d-a089-594102ff0672 +Openstack-Request-Id: req-304965a8-45db-461e-8d22-52e900d3f40c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/deploy_templates/e9d3d49f-a683-41be-8ed4-d04845b5e8ba -GET: /v1/deploy_templates/e9d3d49f-a683-41be-8ed4-d04845b5e8ba {} +API ACL Testing Path get /v1/deploy_templates/12ec209d-d859-41f7-b490-653fbfad5c62 +GET: /v1/deploy_templates/12ec209d-d859-41f7-b490-653fbfad5c62 {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-1df5f0aa-462a-4bde-820a-2d23aae4f9fb +Openstack-Request-Id: req-f307af04-aeac-46f0-b3ef-e34aeb7ec37d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/deploy_templates/3ae29571-646f-4561-bd2c-3b5e8cdacd39 -GET: /v1/deploy_templates/3ae29571-646f-4561-bd2c-3b5e8cdacd39 {} +API ACL Testing Path get /v1/deploy_templates/8b1a9f42-0311-493d-8d4f-42b0f2ea33eb +GET: /v1/deploy_templates/8b1a9f42-0311-493d-8d4f-42b0f2ea33eb {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-32f43b5d-e03f-4e42-b9af-7b8afea7940e +Openstack-Request-Id: req-96c54d25-709c-422e-9623-c9029a519a79 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/deploy_templates/e9527e4d-edc0-445b-a841-ba0a23dfc648 -GET: /v1/deploy_templates/e9527e4d-edc0-445b-a841-ba0a23dfc648 {} +API ACL Testing Path get /v1/deploy_templates/c03a7074-7bf3-4fd7-a644-8a22176d25e1 +GET: /v1/deploy_templates/c03a7074-7bf3-4fd7-a644-8a22176d25e1 {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-d002b219-8ab2-411e-af5e-0e02acd607a9 +Openstack-Request-Id: req-e63f3146-dbbd-4ac3-8bc4-43d88fc67eb6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/deploy_templates/1f041264-338b-4c1d-a92d-9ad4d2e494ae -PATCH: /v1/deploy_templates/1f041264-338b-4c1d-a92d-9ad4d2e494ae [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +API ACL Testing Path patch /v1/deploy_templates/28914525-d332-42ca-b8a1-cc90279675d0 +PATCH: /v1/deploy_templates/28914525-d332-42ca-b8a1-cc90279675d0 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-1e2eff8f-27d5-41ea-a71a-285605db0a9f +Openstack-Request-Id: req-71860b6b-3cb9-4e6f-a4bf-cdd870b6e7c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:update\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/deploy_templates/38e8aae2-c549-4c5d-b0d0-0491c9e99e3b -PATCH: /v1/deploy_templates/38e8aae2-c549-4c5d-b0d0-0491c9e99e3b [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +API ACL Testing Path patch /v1/deploy_templates/7f96aa99-cc3b-4c96-847f-c32d0aa148bc +PATCH: /v1/deploy_templates/7f96aa99-cc3b-4c96-847f-c32d0aa148bc [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-3fcde342-05e1-4887-a8c4-f087d0794728 +Openstack-Request-Id: req-b3479eda-6e81-4923-a074-9e4b8a194291 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:update\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/deploy_templates/01957656-671a-4ad6-9d31-959698279f39 -PATCH: /v1/deploy_templates/01957656-671a-4ad6-9d31-959698279f39 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +API ACL Testing Path patch /v1/deploy_templates/f95f2d10-59d7-417b-8510-3d0fe6cbba2e +PATCH: /v1/deploy_templates/f95f2d10-59d7-417b-8510-3d0fe6cbba2e [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-d26ce86b-75e8-446e-8e84-bbd041793034 +Openstack-Request-Id: req-635ea4d3-e755-4881-b195-eee950b8f419 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:update\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/deploy_templates/b753f32b-42b9-4983-b1e0-9ca6b1324488 -DELETE: /v1/deploy_templates/b753f32b-42b9-4983-b1e0-9ca6b1324488 +API ACL Testing Path delete /v1/deploy_templates/47dd999a-4ae5-474f-b896-59bcf8b00c16 +DELETE: /v1/deploy_templates/47dd999a-4ae5-474f-b896-59bcf8b00c16 GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-539a6039-5707-44b2-87b2-4185632f407d +Openstack-Request-Id: req-70817824-6383-4cd6-b915-8c02803b9eca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/deploy_templates/50ee7b05-98db-4e7f-91fc-cf5b68136bc7 -DELETE: /v1/deploy_templates/50ee7b05-98db-4e7f-91fc-cf5b68136bc7 +API ACL Testing Path delete /v1/deploy_templates/32179150-6b54-4757-aa18-4ba3bc2a1ed1 +DELETE: /v1/deploy_templates/32179150-6b54-4757-aa18-4ba3bc2a1ed1 GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-2383a53f-9955-4a37-b64a-48edcff4e60f +Openstack-Request-Id: req-b6eade17-6e43-48b5-b5ed-d6a7b8dfe413 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/deploy_templates/e934cb35-3f2d-4eac-9a46-393feb210fb1 -DELETE: /v1/deploy_templates/e934cb35-3f2d-4eac-9a46-393feb210fb1 -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_143_ports_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_143_ports_detail_get_member ... ok +API ACL Testing Path delete /v1/deploy_templates/a2b15eb0-86de-4a59-a530-56f7c4409588 +DELETE: /v1/deploy_templates/a2b15eb0-86de-4a59-a530-56f7c4409588 ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_237_nodes_bios_bios_setting_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_237_nodes_bios_bios_setting_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_220_lessee_reader_cannot_delete_vendor_passthru -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_220_lessee_reader_cannot_delete_vendor_passthru ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_144_ports_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_144_ports_detail_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_236_nodes_bios_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_236_nodes_bios_get_observer ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_218_lessee_manager_cannot_delete_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_218_lessee_manager_cannot_delete_vendor_passthru ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_188_volume_targets_post_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_188_volume_targets_post_member ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_282_chassis_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_282_chassis_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_238_nodes_bios_bios_setting_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_238_nodes_bios_bios_setting_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_221_owner_reader_get_traits -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_221_owner_reader_get_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_145_ports_port_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_145_ports_port_id_get_admin ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_237_nodes_bios_bios_setting_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_237_nodes_bios_bios_setting_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_189_volume_targets_post_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_189_volume_targets_post_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_219_lessee_member_cannot_delete_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_219_lessee_member_cannot_delete_vendor_passthru ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_283_chassis_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_283_chassis_post_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_239_conductors_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_239_conductors_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_222_lessee_reader_get_traits -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_222_lessee_reader_get_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_146_ports_port_id_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_146_ports_port_id_get_member ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port_auto_allocate +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port_auto_allocate ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_238_nodes_bios_bios_setting_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_238_nodes_bios_bios_setting_get_member ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_284_chassis_post_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_284_chassis_post_observer ... ok -GOT:Response: 200 OK +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_220_lessee_reader_cannot_delete_vendor_passthru +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_220_lessee_reader_cannot_delete_vendor_passthru ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_190_volume_volume_target_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_190_volume_volume_target_id_get_admin ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_239_nodes_bios_bios_setting_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_239_nodes_bios_bios_setting_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_221_owner_reader_get_traits +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_221_owner_reader_get_traits ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_285_chassis_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_285_chassis_get_admin ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console ... ok +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-182324a2-6098-41ec-b8b4-093ae14eae34 +Openstack-Request-Id: req-10c5a861-8b5d-4622-8123-998f67d810cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"bios": [{"created_at": "2025-02-07T21:34:33.882850+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"}]}]} -ACL Test GOT Response: 200 OK +{"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"}]} +API ACL Testing Path post /v1/volume/targets +POST: /v1/volume/targets {'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 -Openstack-Request-Id: req-182324a2-6098-41ec-b8b4-093ae14eae34 +Location: http://localhost/v1/volume/targets/c76dc47f-27cb-41f4-895d-9485ce5faf77 +Openstack-Request-Id: req-23e35032-916e-4fdd-abd1-d0dda4ea5714 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"bios": [{"created_at": "2025-02-07T21:34:33.882850+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"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} -GOT:Response: 200 OK +{"uuid": "c76dc47f-27cb-41f4-895d-9485ce5faf77", "created_at": "2024-01-06T15:35:51.422561+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/c76dc47f-27cb-41f4-895d-9485ce5faf77", "rel": "self"}, {"href": "http://localhost/volume/targets/c76dc47f-27cb-41f4-895d-9485ce5faf77", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-89a24c83-1be8-452f-800d-a060966d3dc5 +Location: http://localhost/v1/volume/targets/c76dc47f-27cb-41f4-895d-9485ce5faf77 +Openstack-Request-Id: req-23e35032-916e-4fdd-abd1-d0dda4ea5714 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"FAKE_SETTING": {"created_at": "2025-02-07T21:34:35.258638+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"}]}} -ACL Test GOT Response: 200 OK +{"uuid": "c76dc47f-27cb-41f4-895d-9485ce5faf77", "created_at": "2024-01-06T15:35:51.422561+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/c76dc47f-27cb-41f4-895d-9485ce5faf77", "rel": "self"}, {"href": "http://localhost/volume/targets/c76dc47f-27cb-41f4-895d-9485ce5faf77", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +API ACL Testing Path post /v1/volume/targets +POST: /v1/volume/targets {'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 -Openstack-Request-Id: req-89a24c83-1be8-452f-800d-a060966d3dc5 +Location: http://localhost/v1/volume/targets/845086d8-abdf-44ae-a105-2e128c8f9dbc +Openstack-Request-Id: req-e2a68558-e40f-423d-bbff-2647f5d710d1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"FAKE_SETTING": {"created_at": "2025-02-07T21:34:35.258638+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"}]}} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} -GOT:Response: 200 OK +{"uuid": "845086d8-abdf-44ae-a105-2e128c8f9dbc", "created_at": "2024-01-06T15:35:51.607550+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/845086d8-abdf-44ae-a105-2e128c8f9dbc", "rel": "self"}, {"href": "http://localhost/volume/targets/845086d8-abdf-44ae-a105-2e128c8f9dbc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-97cbb1eb-6f45-4f97-b070-dcd6afc270fd +Location: http://localhost/v1/volume/targets/845086d8-abdf-44ae-a105-2e128c8f9dbc +Openstack-Request-Id: req-e2a68558-e40f-423d-bbff-2647f5d710d1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"FAKE_SETTING": {"created_at": "2025-02-07T21:34:36.818036+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"}]}} -ACL Test GOT Response: 200 OK +{"uuid": "845086d8-abdf-44ae-a105-2e128c8f9dbc", "created_at": "2024-01-06T15:35:51.607550+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/845086d8-abdf-44ae-a105-2e128c8f9dbc", "rel": "self"}, {"href": "http://localhost/volume/targets/845086d8-abdf-44ae-a105-2e128c8f9dbc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} +API ACL Testing Path post /v1/volume/targets +POST: /v1/volume/targets {'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-97cbb1eb-6f45-4f97-b070-dcd6afc270fd +Openstack-Request-Id: req-a652c917-393a-41ef-a10a-fa4cd3c517b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"FAKE_SETTING": {"created_at": "2025-02-07T21:34:36.818036+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"}]}} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-187e3024-5721-4431-9dcf-37effbaa5283 +Openstack-Request-Id: req-a652c917-393a-41ef-a10a-fa4cd3c517b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"FAKE_SETTING": {"created_at": "2025-02-07T21:34:38.266463+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"}]}} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-187e3024-5721-4431-9dcf-37effbaa5283 +Openstack-Request-Id: req-c4b6d9bb-962a-4fee-b555-fc859d168a47 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"FAKE_SETTING": {"created_at": "2025-02-07T21:34:38.266463+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"}]}} -API ACL Testing Path get /v1/conductors -GET: /v1/conductors {} -GOT:Response: 200 OK +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:52.094234+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"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-983bb102-a5ce-49f2-9996-c9836fedcbf2 +Openstack-Request-Id: req-c4b6d9bb-962a-4fee-b555-fc859d168a47 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}]} -ACL Test GOT Response: 200 OK +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:52.094234+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"} +API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-983bb102-a5ce-49f2-9996-c9836fedcbf2 +Openstack-Request-Id: req-b23dbaf4-22f1-4e8a-9bc1-b5807b5721e6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}]} -API ACL Testing Path get /v1/conductors -GET: /v1/conductors {} -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_223_third_party_admin_cannot_get_traits -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_223_third_party_admin_cannot_get_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_240_conductors_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_240_conductors_get_member ... ok +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:52.406901+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"} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_191_volume_volume_target_id_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_191_volume_volume_target_id_get_member ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0b16c9cd-d0b7-40f3-9c0a-335ee9855b8e +Openstack-Request-Id: req-48e7fbd4-a745-499a-81d2-fc05d76a2560 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:34:34.777899+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +{"bios": [{"created_at": "2024-01-06T15:35:50.942040+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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0b16c9cd-d0b7-40f3-9c0a-335ee9855b8e +Openstack-Request-Id: req-48e7fbd4-a745-499a-81d2-fc05d76a2560 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:34:34.777899+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} -API ACL Testing Path get /v1/ports/detail -GET: /v1/ports/detail {} -GOT:Response: 403 Forbidden +{"bios": [{"created_at": "2024-01-06T15:35:50.942040+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"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-80f85280-de41-4165-b56c-1f8ff924d932 +Openstack-Request-Id: req-35b746a2-b38c-4bd8-bed9-ce53cbe6a1df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-80f85280-de41-4165-b56c-1f8ff924d932 +Openstack-Request-Id: req-35b746a2-b38c-4bd8-bed9-ce53cbe6a1df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/ports/detail -GET: /v1/ports/detail {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0b439676-4431-40f4-8095-dc9e0679363f +Openstack-Request-Id: req-85583564-de74-4ce9-bb62-6b07d50eebc7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:34:37.646279+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +{"bios": [{"created_at": "2024-01-06T15:35:51.469943+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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0b439676-4431-40f4-8095-dc9e0679363f +Openstack-Request-Id: req-85583564-de74-4ce9-bb62-6b07d50eebc7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:34:37.646279+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} -API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +{"bios": [{"created_at": "2024-01-06T15:35:51.469943+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"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6f6356fa-cf59-4dbb-bd7a-b364e9d734ce +Openstack-Request-Id: req-760ab73e-896a-4941-a35b-7806647b047c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:34:39.042962+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +{"FAKE_SETTING": {"created_at": "2024-01-06T15:35:51.729274+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"}]}} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6f6356fa-cf59-4dbb-bd7a-b364e9d734ce +Openstack-Request-Id: req-760ab73e-896a-4941-a35b-7806647b047c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:34:39.042962+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +{"FAKE_SETTING": {"created_at": "2024-01-06T15:35:51.729274+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"}]}} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-411048f9-e438-4b44-abb0-c7d6c4f184d5 +Openstack-Request-Id: req-b7280e65-570e-4c4c-b1d7-f5063c8726cd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-411048f9-e438-4b44-abb0-c7d6c4f184d5 +Openstack-Request-Id: req-b7280e65-570e-4c4c-b1d7-f5063c8726cd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_147_ports_port_id_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_147_ports_port_id_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_285_chassis_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_285_chassis_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_241_conductors_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_241_conductors_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_224_owner_admin_can_put_traits -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_224_owner_admin_can_put_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_148_ports_port_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_148_ports_port_id_patch_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_242_conductors_hostname_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_242_conductors_hostname_get_admin ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-a51b57a9-8878-4c3e-b9cc-51336082026e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"FAKE_SETTING": {"created_at": "2024-01-06T15:35:52.319021+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"}]}} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-a51b57a9-8878-4c3e-b9cc-51336082026e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"FAKE_SETTING": {"created_at": "2024-01-06T15:35:52.319021+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"}]}} +API ACL Testing Path get /v1/conductors +GET: /v1/conductors {} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_240_conductors_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_240_conductors_get_admin ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_alloc_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_alloc_port ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_222_lessee_reader_get_traits +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_222_lessee_reader_get_traits ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_286_chassis_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_286_chassis_get_member ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_with_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_with_port ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_241_conductors_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_241_conductors_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_287_chassis_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_287_chassis_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_223_third_party_admin_cannot_get_traits +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_223_third_party_admin_cannot_get_traits ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_observer ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_288_chassis_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_288_chassis_detail_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_192_volume_volume_target_id_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_192_volume_volume_target_id_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_224_owner_admin_can_put_traits +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_224_owner_admin_can_put_traits ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_243_conductors_hostname_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_243_conductors_hostname_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_289_chassis_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_289_chassis_detail_get_member ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_193_volume_volume_target_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_193_volume_volume_target_id_patch_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_244_conductors_hostname_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_244_conductors_hostname_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_290_chassis_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_290_chassis_detail_get_observer ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk_rescue +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk_rescue ... ok ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-67fe9f36-afdc-4da2-8c9f-4b143ff396e7 +Openstack-Request-Id: req-8c5650f8-ee8c-41cd-8f3c-ef2fa0edc85d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40181,14 +40381,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c3363027-a39d-4bad-a16a-02612cd89dd4 +Openstack-Request-Id: req-6673dcef-29da-426b-8d82-4fea6c5de603 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c3363027-a39d-4bad-a16a-02612cd89dd4 +Openstack-Request-Id: req-6673dcef-29da-426b-8d82-4fea6c5de603 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40197,14 +40397,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a091aef2-877b-4a97-9a86-ebd81bccedcb +Openstack-Request-Id: req-f273c165-b63d-4e6a-8125-03a6b991c91f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a091aef2-877b-4a97-9a86-ebd81bccedcb +Openstack-Request-Id: req-f273c165-b63d-4e6a-8125-03a6b991c91f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40213,14 +40413,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1c3f43a5-afa4-45f9-ad5a-d6eb4301258c +Openstack-Request-Id: req-5501a4df-2e09-4085-a921-cdd49fb744db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1c3f43a5-afa4-45f9-ad5a-d6eb4301258c +Openstack-Request-Id: req-5501a4df-2e09-4085-a921-cdd49fb744db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40229,14 +40429,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a12b9530-aa27-4959-8141-c4e181cca64f +Openstack-Request-Id: req-933cd288-a4c6-4d58-9e7f-0ccad9396587 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a12b9530-aa27-4959-8141-c4e181cca64f +Openstack-Request-Id: req-933cd288-a4c6-4d58-9e7f-0ccad9396587 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40245,14 +40445,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3dc1e69f-c189-4196-8143-8b333c665574 +Openstack-Request-Id: req-20cfd823-f457-4677-9fb2-34cf830f3544 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"traits": []} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3dc1e69f-c189-4196-8143-8b333c665574 +Openstack-Request-Id: req-20cfd823-f457-4677-9fb2-34cf830f3544 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40261,14 +40461,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b97bc087-c294-4965-8db0-09cb066616e8 +Openstack-Request-Id: req-0b7bc59c-9981-45ce-99ea-69c34c10dfee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"traits": []} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b97bc087-c294-4965-8db0-09cb066616e8 +Openstack-Request-Id: req-0b7bc59c-9981-45ce-99ea-69c34c10dfee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40277,14 +40477,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-08881b7e-cb83-421a-9666-8f7a6d531fa8 +Openstack-Request-Id: req-ee205544-c34d-4635-99a5-be9cf70fcf78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-08881b7e-cb83-421a-9666-8f7a6d531fa8 +Openstack-Request-Id: req-ee205544-c34d-4635-99a5-be9cf70fcf78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40293,14 +40493,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d9a85670-9aa7-4bb1-b00a-958f509cba79 +Openstack-Request-Id: req-713975f2-220b-453d-8bfe-d91586841831 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d9a85670-9aa7-4bb1-b00a-958f509cba79 +Openstack-Request-Id: req-713975f2-220b-453d-8bfe-d91586841831 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40309,66 +40509,86 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_225_owner_manager_can_put_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_225_owner_manager_can_put_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_149_ports_port_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_149_ports_port_id_patch_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_243_conductors_hostname_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_243_conductors_hostname_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_287_chassis_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_287_chassis_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_245_conductors_hostname_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_245_conductors_hostname_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_194_volume_volume_target_id_patch_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_194_volume_volume_target_id_patch_reader ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_226_owner_member_cannot_put_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_226_owner_member_cannot_put_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_150_ports_port_id_patch_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_150_ports_port_id_patch_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_conductors_hostname_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_conductors_hostname_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_288_chassis_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_288_chassis_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_291_chassis_chassis_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_291_chassis_chassis_id_get_admin ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_246_allocations_post_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_246_allocations_post_admin ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_227_lessee_admin_cannot_put_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_227_lessee_admin_cannot_put_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_151_ports_port_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_151_ports_port_id_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_245_allocations_post_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_245_allocations_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_289_chassis_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_289_chassis_detail_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_195_volume_volume_target_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_195_volume_volume_target_id_delete_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_292_chassis_chassis_id_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_292_chassis_chassis_id_get_member ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_active +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_active ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_247_allocations_post_member +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." ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_228_lessee_manager_cannot_put_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_228_lessee_manager_cannot_put_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_152_ports_port_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_152_ports_port_id_delete_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_293_chassis_chassis_id_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_293_chassis_chassis_id_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_196_volume_volume_target_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_196_volume_volume_target_id_delete_member ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_294_chassis_chassis_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_294_chassis_chassis_id_patch_admin ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_229_lessee_member_cannot_put_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_229_lessee_member_cannot_put_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_246_allocations_post_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_246_allocations_post_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_290_chassis_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_290_chassis_detail_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_153_ports_port_id_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_153_ports_port_id_delete_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_197_volume_volume_target_id_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_197_volume_volume_target_id_delete_reader ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8939ee9c-7136-4cd7-9c66-4bfc9b28aef4 +Openstack-Request-Id: req-26c61bcb-7030-4f2c-a297-ad979fc0dbaf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8939ee9c-7136-4cd7-9c66-4bfc9b28aef4 +Openstack-Request-Id: req-26c61bcb-7030-4f2c-a297-ad979fc0dbaf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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}]} API ACL Testing Path get /v1/conductors GET: /v1/conductors {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-25598bb8-530f-4a7e-91b3-71e0ca9a718a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-25598bb8-530f-4a7e-91b3-71e0ca9a718a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/conductors +GET: /v1/conductors {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-014a8d09-c282-43bc-8bc1-aeb03ed3d88f +Openstack-Request-Id: req-fb044aaa-90bc-47c7-85b8-49c7dd3f8330 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-014a8d09-c282-43bc-8bc1-aeb03ed3d88f +Openstack-Request-Id: req-fb044aaa-90bc-47c7-85b8-49c7dd3f8330 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40377,230 +40597,350 @@ GET: /v1/conductors/test-conductor-node {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1481f870-b830-455c-8a2b-b1fcc7b186fa +Openstack-Request-Id: req-66ad0c6e-47f1-4f4c-826c-4947b4af182e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"created_at": "2025-02-07T21:34:42.582621+00:00", "updated_at": "2025-02-07T21:34:42.584287+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} +{"created_at": "2024-01-06T15:35:52.978510+00:00", "updated_at": "2024-01-06T15:35:52.979882+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} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1481f870-b830-455c-8a2b-b1fcc7b186fa +Openstack-Request-Id: req-66ad0c6e-47f1-4f4c-826c-4947b4af182e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"created_at": "2025-02-07T21:34:42.582621+00:00", "updated_at": "2025-02-07T21:34:42.584287+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} +{"created_at": "2024-01-06T15:35:52.978510+00:00", "updated_at": "2024-01-06T15:35:52.979882+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} API ACL Testing Path get /v1/conductors/test-conductor-node GET: /v1/conductors/test-conductor-node {} -GOT:Response: 200 OK +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a47771d0-07c2-446f-ae5d-f2351050360e +Openstack-Request-Id: req-8190d780-5c6d-4fd6-9df6-201935b0d9d6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"created_at": "2025-02-07T21:34:43.850488+00:00", "updated_at": "2025-02-07T21:34:43.852223+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} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a47771d0-07c2-446f-ae5d-f2351050360e +Openstack-Request-Id: req-8190d780-5c6d-4fd6-9df6-201935b0d9d6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"created_at": "2025-02-07T21:34:43.850488+00:00", "updated_at": "2025-02-07T21:34:43.852223+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} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} API ACL Testing Path get /v1/conductors/test-conductor-node GET: /v1/conductors/test-conductor-node {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-70b90505-09e7-46f0-af03-f7c7e5626177 +Openstack-Request-Id: req-602d9f12-17a4-4b31-952a-ee1e4908e1fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"created_at": "2025-02-07T21:34:45.545874+00:00", "updated_at": "2025-02-07T21:34:45.547590+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} +{"created_at": "2024-01-06T15:35:53.179233+00:00", "updated_at": "2024-01-06T15:35:53.180570+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} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-70b90505-09e7-46f0-af03-f7c7e5626177 +Openstack-Request-Id: req-602d9f12-17a4-4b31-952a-ee1e4908e1fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"created_at": "2025-02-07T21:34:45.545874+00:00", "updated_at": "2025-02-07T21:34:45.547590+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} +{"created_at": "2024-01-06T15:35:53.179233+00:00", "updated_at": "2024-01-06T15:35:53.180570+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} API ACL Testing Path post /v1/allocations POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-012507a1-4ac4-4889-ba64-838b7a8cb22c +Openstack-Request-Id: req-a2b2f76b-b6ef-45c5-a6d8-68e507ee08f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-012507a1-4ac4-4889-ba64-838b7a8cb22c +Openstack-Request-Id: req-a2b2f76b-b6ef-45c5-a6d8-68e507ee08f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/allocations POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} -GOT:Response: 503 Service Unavailable +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-66d1d2f9-85a4-4cc1-8cb6-72274124fb8b +Openstack-Request-Id: req-89a6c0cf-8c75-4efb-b70c-b9eab9571d48 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_248_allocations_post_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_248_allocations_post_observer ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi_bios +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi_bios ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_249_allocations_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_249_allocations_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_230_third_party_admin_cannot_put_traits +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_230_third_party_admin_cannot_put_traits ... ok +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-66d1d2f9-85a4-4cc1-8cb6-72274124fb8b +Openstack-Request-Id: req-2c654b73-c7e1-4e79-bc14-8ffff7ae4a18 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/allocations -POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_230_third_party_admin_cannot_put_traits -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_230_third_party_admin_cannot_put_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_247_allocations_post_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_247_allocations_post_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_291_chassis_chassis_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_291_chassis_chassis_id_get_admin ... ok -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/chassis +POST: /v1/chassis {'description': 'test-chassis'} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-e0bdbb5b-a3c0-4902-ace0-18cc3ca01127 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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}"} +API ACL Testing Path post /v1/chassis +POST: /v1/chassis {'description': 'test-chassis'} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-3a2c92e6-efc5-402d-8fad-de0837f11ac2 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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}"} +API ACL Testing Path post /v1/chassis +POST: /v1/chassis {'description': 'test-chassis'} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-9b3413f2-aa99-449d-a6b4-d89cb9726c86 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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}"} +API ACL Testing Path get /v1/chassis +GET: /v1/chassis {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-b246727d-0c81-41f5-ad36-e15926d26107 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/chassis +GET: /v1/chassis {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-bf3a786c-f08b-435d-b256-c589108c9675 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/chassis +GET: /v1/chassis {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-4d00fe1b-e9b7-4682-8c61-7051f7e48eea +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/chassis/detail +GET: /v1/chassis/detail {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-1ce626a3-5b50-403e-ac79-41ed1694fa05 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/chassis/detail +GET: /v1/chassis/detail {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-f437e303-8c48-42b9-b569-bf0f37bb4927 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/chassis/detail +GET: /v1/chassis/detail {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-1acf6eeb-dcc2-480c-8d0f-e368371a9588 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-97fbb239-5e3b-4450-8f3d-ae3c59e4fbbe +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-e06c5646-aaab-4089-a29a-64d23dcd1405 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-2213cdfc-b0d4-4840-92d4-c0a975e3144e +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-dfae656d-d2ef-47de-8c07-2499de735080 +Openstack-Request-Id: req-deb24578-fe7f-4497-a4af-d72a3c72a8fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:34:40.795744+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"role:member and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_295_chassis_chassis_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_295_chassis_chassis_id_patch_member ... ok ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-dfae656d-d2ef-47de-8c07-2499de735080 +Openstack-Request-Id: req-b23dbaf4-22f1-4e8a-9bc1-b5807b5721e6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:34:40.795744+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} -API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 503 Service Unavailable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:52.406901+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"} +API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6cd137ec-a4b1-4e56-a848-e54fc9e764fa +Openstack-Request-Id: req-c858506d-aaa7-4c7b-8b9a-b39c077fc3ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:52.910079+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"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6cd137ec-a4b1-4e56-a848-e54fc9e764fa +Openstack-Request-Id: req-c858506d-aaa7-4c7b-8b9a-b39c077fc3ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:35:52.910079+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"} +API ACL Testing Path patch /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-abb42541-f2aa-40da-b10b-d6fc2f59c19b +Openstack-Request-Id: req-24418aec-27e0-42ff-b6e1-025a219d653e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-abb42541-f2aa-40da-b10b-d6fc2f59c19b +Openstack-Request-Id: req-24418aec-27e0-42ff-b6e1-025a219d653e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d6707e33-0369-4821-98bf-b7ebeb184ced +Openstack-Request-Id: req-54c8aa8f-fdd9-4e2d-9a40-e655d8c07108 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d6707e33-0369-4821-98bf-b7ebeb184ced +Openstack-Request-Id: req-54c8aa8f-fdd9-4e2d-9a40-e655d8c07108 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-91f712ff-f4ea-41a9-bd65-188d2c52b170 +Openstack-Request-Id: req-a9102a0e-5bb6-4b56-9e07-894f648ec64a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-91f712ff-f4ea-41a9-bd65-188d2c52b170 +Openstack-Request-Id: req-a9102a0e-5bb6-4b56-9e07-894f648ec64a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 404 Not Found +API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-31b90fbb-4591-4afd-b146-06775320becb +Openstack-Request-Id: req-12e36cf4-791e-46b3-a423-5156bc27475d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-31b90fbb-4591-4afd-b146-06775320becb +Openstack-Request-Id: req-12e36cf4-791e-46b3-a423-5156bc27475d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-94536a28-8fe8-4d6f-a775-8ad28eb696b6 +Openstack-Request-Id: req-53566528-5d52-486d-9abe-2cc6b66194e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-94536a28-8fe8-4d6f-a775-8ad28eb696b6 +Openstack-Request-Id: req-53566528-5d52-486d-9abe-2cc6b66194e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_154_nodes_ports_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_154_nodes_ports_get_admin ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_198_nodes_volume_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_198_nodes_volume_get_admin ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_ramdisk +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_ramdisk ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_296_chassis_chassis_id_patch_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_296_chassis_chassis_id_patch_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_250_allocations_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_250_allocations_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_231_owner_admin_can_delete_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_231_owner_admin_can_delete_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_248_allocations_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_248_allocations_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_155_nodes_ports_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_155_nodes_ports_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_292_chassis_chassis_id_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_292_chassis_chassis_id_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_249_allocations_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_249_allocations_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_199_nodes_volume_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_199_nodes_volume_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_297_chassis_chassis_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_297_chassis_chassis_id_delete_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_251_allocations_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_251_allocations_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_232_owner_manager_can_delete_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_232_owner_manager_can_delete_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_156_nodes_ports_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_156_nodes_ports_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_293_chassis_chassis_id_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_293_chassis_chassis_id_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_298_chassis_chassis_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_298_chassis_chassis_id_delete_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_200_nodes_volume_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_200_nodes_volume_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_252_allocations_allocation_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_252_allocations_allocation_id_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_299_chassis_chassis_id_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_299_chassis_chassis_id_delete_observer ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d0d5cea3-cee2-4e6b-ad39-f5161bed58e4 +Openstack-Request-Id: req-6b15789b-bd00-43fb-a385-a3075175d4f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d0d5cea3-cee2-4e6b-ad39-f5161bed58e4 +Openstack-Request-Id: req-6b15789b-bd00-43fb-a385-a3075175d4f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40609,14 +40949,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ddeef5e5-e165-4fc8-aa98-942b2caade75 +Openstack-Request-Id: req-b35896e4-d4da-44c9-b1de-7a834e06233d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ddeef5e5-e165-4fc8-aa98-942b2caade75 +Openstack-Request-Id: req-b35896e4-d4da-44c9-b1de-7a834e06233d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40625,14 +40965,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-26ac9f05-12e9-4a71-828e-f165bd256712 +Openstack-Request-Id: req-373ac990-0f5f-4776-9ef2-baf866c083ab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-26ac9f05-12e9-4a71-828e-f165bd256712 +Openstack-Request-Id: req-373ac990-0f5f-4776-9ef2-baf866c083ab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40641,14 +40981,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1be659a8-a33d-452a-aadc-6e1764fce13e +Openstack-Request-Id: req-71b81d91-3c7e-40a5-b332-85a72d8e941e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1be659a8-a33d-452a-aadc-6e1764fce13e +Openstack-Request-Id: req-71b81d91-3c7e-40a5-b332-85a72d8e941e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40657,14 +40997,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-24f79b8d-cf87-47a0-9642-2e53298b924a +Openstack-Request-Id: req-0a934ff0-e9bc-423e-a117-1cf817a64aea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-24f79b8d-cf87-47a0-9642-2e53298b924a +Openstack-Request-Id: req-0a934ff0-e9bc-423e-a117-1cf817a64aea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40673,14 +41013,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-74117dd3-674b-4a3d-b509-701e1815341c +Openstack-Request-Id: req-07026aad-211f-413d-9af9-12f1d7688026 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-74117dd3-674b-4a3d-b509-701e1815341c +Openstack-Request-Id: req-07026aad-211f-413d-9af9-12f1d7688026 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40689,14 +41029,14 @@ DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_MEOW GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7ffbef6b-6f48-4117-968a-0a201dc6d13b +Openstack-Request-Id: req-0bd3ff71-e73a-4a82-8e0c-ee9f7cc9295f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7ffbef6b-6f48-4117-968a-0a201dc6d13b +Openstack-Request-Id: req-0bd3ff71-e73a-4a82-8e0c-ee9f7cc9295f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40705,168 +41045,35 @@ DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_MEOW GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7a68dac8-68c6-4416-8f8d-d2499aa1278d +Openstack-Request-Id: req-c1e619c6-2b0a-47a6-b553-aab41e9e3e12 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7a68dac8-68c6-4416-8f8d-d2499aa1278d +Openstack-Request-Id: req-c1e619c6-2b0a-47a6-b553-aab41e9e3e12 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_MEOW DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_MEOW -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_250_allocations_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_250_allocations_get_reader ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_233_owner_member_cannot_delete_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_233_owner_member_cannot_delete_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_157_nodes_ports_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_157_nodes_ports_detail_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_294_chassis_chassis_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_294_chassis_chassis_id_patch_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_251_allocations_allocation_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_251_allocations_allocation_id_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_253_allocations_allocation_id_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_253_allocations_allocation_id_get_member ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_201_nodes_volume_connectors_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_201_nodes_volume_connectors_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_234_lessee_admin_cannot_delete_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_234_lessee_admin_cannot_delete_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_158_nodes_ports_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_158_nodes_ports_detail_get_member ... ok -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-53a41560-10c5-41d4-8d89-93a490606280 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/chassis -POST: /v1/chassis {'description': 'test-chassis'} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-2f6ca674-904a-4e44-8683-451780508921 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -API ACL Testing Path post /v1/chassis -POST: /v1/chassis {'description': 'test-chassis'} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-011c7e56-c706-4b34-85a9-4186955baf3c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -API ACL Testing Path post /v1/chassis -POST: /v1/chassis {'description': 'test-chassis'} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-0e9970ec-f292-4739-886e-332c630f0c3e -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -API ACL Testing Path get /v1/chassis -GET: /v1/chassis {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-0fda640e-d5a7-4584-a565-bbd66cfa3b00 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/chassis -GET: /v1/chassis {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-f1fc6b19-70bb-4e43-9235-df56649e9ddd -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/chassis -GET: /v1/chassis {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-42f097ac-2e5e-4fd2-a63d-8bb8af5fb760 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/chassis/detail -GET: /v1/chassis/detail {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-5f16a3bb-40b9-41f4-9fe9-c60b1ffda73d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/chassis/detail -GET: /v1/chassis/detail {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-397bce42-d702-4e4d-9372-34ee5dd0d7d6 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/chassis/detail -GET: /v1/chassis/detail {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-8ca0e3dd-ec9d-4fb9-a91c-c05663e16bcf -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-b091ca50-1658-4d6a-ae04-28c5d38aee9e -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-b1bad34b-6b2c-4653-ada6-f0a9804f2b78 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-ae8c7a19-4fdf-435e-9efc-3b80c831ac18 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-02852afb-b6a2-4590-b26f-1e14ce4ccf06 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"role:member and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-dd3afd07-0e02-47cc-8589-9f1557c4ca02 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_300_node_history_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_300_node_history_get_admin ... ok ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dd3afd07-0e02-47cc-8589-9f1557c4ca02 +Openstack-Request-Id: req-89a6c0cf-8c75-4efb-b70c-b9eab9571d48 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -40875,293 +41082,227 @@ GET: /v1/allocations {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-68ca1991-f2c1-46ed-96cd-877d4d303407 +Openstack-Request-Id: req-e4b723b6-a090-46ef-bce0-d4e30183d5cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": [{"uuid": "dc8a776e-5ccf-4935-ae9d-d95dfb6b1447", "created_at": "2025-02-07T21:34:52.760771+00:00", "updated_at": "2025-02-07T21:34:52.807697+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/dc8a776e-5ccf-4935-ae9d-d95dfb6b1447", "rel": "self"}, {"href": "http://localhost/allocations/dc8a776e-5ccf-4935-ae9d-d95dfb6b1447", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +{"allocations": [{"uuid": "1f547f16-ec33-429c-a174-322c997ca13c", "created_at": "2024-01-06T15:35:53.564654+00:00", "updated_at": "2024-01-06T15:35:53.574065+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/1f547f16-ec33-429c-a174-322c997ca13c", "rel": "self"}, {"href": "http://localhost/allocations/1f547f16-ec33-429c-a174-322c997ca13c", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-68ca1991-f2c1-46ed-96cd-877d4d303407 +Openstack-Request-Id: req-e4b723b6-a090-46ef-bce0-d4e30183d5cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": [{"uuid": "dc8a776e-5ccf-4935-ae9d-d95dfb6b1447", "created_at": "2025-02-07T21:34:52.760771+00:00", "updated_at": "2025-02-07T21:34:52.807697+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/dc8a776e-5ccf-4935-ae9d-d95dfb6b1447", "rel": "self"}, {"href": "http://localhost/allocations/dc8a776e-5ccf-4935-ae9d-d95dfb6b1447", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +{"allocations": [{"uuid": "1f547f16-ec33-429c-a174-322c997ca13c", "created_at": "2024-01-06T15:35:53.564654+00:00", "updated_at": "2024-01-06T15:35:53.574065+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/1f547f16-ec33-429c-a174-322c997ca13c", "rel": "self"}, {"href": "http://localhost/allocations/1f547f16-ec33-429c-a174-322c997ca13c", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} API ACL Testing Path get /v1/allocations GET: /v1/allocations {} -GOT:Response: 200 OK +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-12ec9722-9a76-47e3-8f4c-38f288d2aff7 +Openstack-Request-Id: req-48722af1-7f9c-4f3d-9785-9cc6bec51039 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": [{"uuid": "5cf97061-95f8-4ebd-b01f-be45061af5ff", "created_at": "2025-02-07T21:34:54.644434+00:00", "updated_at": "2025-02-07T21:34:54.671593+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/5cf97061-95f8-4ebd-b01f-be45061af5ff", "rel": "self"}, {"href": "http://localhost/allocations/5cf97061-95f8-4ebd-b01f-be45061af5ff", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-12ec9722-9a76-47e3-8f4c-38f288d2aff7 +Openstack-Request-Id: req-48722af1-7f9c-4f3d-9785-9cc6bec51039 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": [{"uuid": "5cf97061-95f8-4ebd-b01f-be45061af5ff", "created_at": "2025-02-07T21:34:54.644434+00:00", "updated_at": "2025-02-07T21:34:54.671593+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/5cf97061-95f8-4ebd-b01f-be45061af5ff", "rel": "self"}, {"href": "http://localhost/allocations/5cf97061-95f8-4ebd-b01f-be45061af5ff", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} API ACL Testing Path get /v1/allocations GET: /v1/allocations {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-076cba3f-d0c6-460f-8381-a6ba7811e849 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": [{"uuid": "6d6d639e-1900-4611-a692-349912360892", "created_at": "2025-02-07T21:34:56.504338+00:00", "updated_at": "2025-02-07T21:34:56.546844+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/6d6d639e-1900-4611-a692-349912360892", "rel": "self"}, {"href": "http://localhost/allocations/6d6d639e-1900-4611-a692-349912360892", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-076cba3f-d0c6-460f-8381-a6ba7811e849 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": [{"uuid": "6d6d639e-1900-4611-a692-349912360892", "created_at": "2025-02-07T21:34:56.504338+00:00", "updated_at": "2025-02-07T21:34:56.546844+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/6d6d639e-1900-4611-a692-349912360892", "rel": "self"}, {"href": "http://localhost/allocations/6d6d639e-1900-4611-a692-349912360892", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} -API ACL Testing Path get /v1/allocations/45103f02-06e6-4f0b-9e31-1bcba5dc5e8c -GET: /v1/allocations/45103f02-06e6-4f0b-9e31-1bcba5dc5e8c {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-e3047ba8-53e2-44b7-b2e6-3eaba0260166 +Openstack-Request-Id: req-8ed229c2-0018-4cd1-b68a-04dcfedbbdf1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "45103f02-06e6-4f0b-9e31-1bcba5dc5e8c", "created_at": "2025-02-07T21:34:58.362841+00:00", "updated_at": "2025-02-07T21:34:58.419222+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/45103f02-06e6-4f0b-9e31-1bcba5dc5e8c", "rel": "self"}, {"href": "http://localhost/allocations/45103f02-06e6-4f0b-9e31-1bcba5dc5e8c", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"allocations": [{"uuid": "e4ea43b5-ad19-4c78-b971-2b134688604e", "created_at": "2024-01-06T15:35:53.826076+00:00", "updated_at": "2024-01-06T15:35:53.835194+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/e4ea43b5-ad19-4c78-b971-2b134688604e", "rel": "self"}, {"href": "http://localhost/allocations/e4ea43b5-ad19-4c78-b971-2b134688604e", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e3047ba8-53e2-44b7-b2e6-3eaba0260166 +Openstack-Request-Id: req-8ed229c2-0018-4cd1-b68a-04dcfedbbdf1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "45103f02-06e6-4f0b-9e31-1bcba5dc5e8c", "created_at": "2025-02-07T21:34:58.362841+00:00", "updated_at": "2025-02-07T21:34:58.419222+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/45103f02-06e6-4f0b-9e31-1bcba5dc5e8c", "rel": "self"}, {"href": "http://localhost/allocations/45103f02-06e6-4f0b-9e31-1bcba5dc5e8c", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path get /v1/allocations/2b36fc09-da83-490d-a131-ea30cf665aa7 -GET: /v1/allocations/2b36fc09-da83-490d-a131-ea30cf665aa7 {} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_295_chassis_chassis_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_295_chassis_chassis_id_patch_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_252_allocations_allocation_id_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_252_allocations_allocation_id_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_235_lessee_manager_cannot_delete_traits -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_235_lessee_manager_cannot_delete_traits ... ok +{"allocations": [{"uuid": "e4ea43b5-ad19-4c78-b971-2b134688604e", "created_at": "2024-01-06T15:35:53.826076+00:00", "updated_at": "2024-01-06T15:35:53.835194+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/e4ea43b5-ad19-4c78-b971-2b134688604e", "rel": "self"}, {"href": "http://localhost/allocations/e4ea43b5-ad19-4c78-b971-2b134688604e", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +API ACL Testing Path get /v1/allocations/43aacc6c-bafc-49c3-ac60-f6cad6e624df +GET: /v1/allocations/43aacc6c-bafc-49c3-ac60-f6cad6e624df {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ae171ab0-f6e9-4808-95b2-9edfd5f47238 +Openstack-Request-Id: req-15d1b357-e037-4bf8-a960-ea9baa9be725 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} +{"uuid": "43aacc6c-bafc-49c3-ac60-f6cad6e624df", "created_at": "2024-01-06T15:35:53.935599+00:00", "updated_at": "2024-01-06T15:35:53.945034+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/43aacc6c-bafc-49c3-ac60-f6cad6e624df", "rel": "self"}, {"href": "http://localhost/allocations/43aacc6c-bafc-49c3-ac60-f6cad6e624df", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ae171ab0-f6e9-4808-95b2-9edfd5f47238 +Openstack-Request-Id: req-15d1b357-e037-4bf8-a960-ea9baa9be725 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} +{"uuid": "43aacc6c-bafc-49c3-ac60-f6cad6e624df", "created_at": "2024-01-06T15:35:53.935599+00:00", "updated_at": "2024-01-06T15:35:53.945034+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/43aacc6c-bafc-49c3-ac60-f6cad6e624df", "rel": "self"}, {"href": "http://localhost/allocations/43aacc6c-bafc-49c3-ac60-f6cad6e624df", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path get /v1/allocations/a044421e-039b-436c-8ba2-b755796e6a60 +GET: /v1/allocations/a044421e-039b-436c-8ba2-b755796e6a60 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bf3b0bb4-2ad4-4cbd-bc55-1dfdce16539d +Openstack-Request-Id: req-58dd6a55-e899-4788-8a22-27115eae2a86 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation a044421e-039b-436c-8ba2-b755796e6a60 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bf3b0bb4-2ad4-4cbd-bc55-1dfdce16539d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-e4384ffa-2a42-4fed-b086-d58b8468a5fb -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-e4384ffa-2a42-4fed-b086-d58b8468a5fb +Openstack-Request-Id: req-58dd6a55-e899-4788-8a22-27115eae2a86 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation a044421e-039b-436c-8ba2-b755796e6a60 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/allocations/c83676e7-dda1-4b6a-a5d4-af93a644c1ac +GET: /v1/allocations/c83676e7-dda1-4b6a-a5d4-af93a644c1ac {} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_254_allocations_allocation_id_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_254_allocations_allocation_id_get_observer ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_bios +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_bios ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_301_node_history_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_301_node_history_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_235_lessee_manager_cannot_delete_traits +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_235_lessee_manager_cannot_delete_traits ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b68e8aa9-7828-4f0a-87c0-bd086ca0bf96 +Openstack-Request-Id: req-8cdb6286-d5da-4932-b5b1-26379f9ca0d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:34:57.215448+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} +{"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b68e8aa9-7828-4f0a-87c0-bd086ca0bf96 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:34:57.215448+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-b2315a72-140a-4a16-b554-0732be6cc375 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-b2315a72-140a-4a16-b554-0732be6cc375 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-cf248393-9fe5-4b73-a92c-5c947802622b +Openstack-Request-Id: req-8cdb6286-d5da-4932-b5b1-26379f9ca0d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:35:00.925156+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_159_nodes_ports_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_159_nodes_ports_detail_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_253_allocations_allocation_id_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_253_allocations_allocation_id_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_236_lessee_member_cannot_delete_traits -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_236_lessee_member_cannot_delete_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_296_chassis_chassis_id_patch_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_296_chassis_chassis_id_patch_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_160_portgroups_ports_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_160_portgroups_ports_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_254_allocations_allocation_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_254_allocations_allocation_id_patch_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_237_third_party_admin_cannot_delete_traits -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_237_third_party_admin_cannot_delete_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_297_chassis_chassis_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_297_chassis_chassis_id_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_161_portgroups_ports_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_161_portgroups_ports_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_255_allocations_allocation_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_255_allocations_allocation_id_patch_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_238_owner_admin_can_put_custom_traits -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_238_owner_admin_can_put_custom_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_298_chassis_chassis_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_298_chassis_chassis_id_delete_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_162_portgroups_ports_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_162_portgroups_ports_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_256_allocations_allocation_id_patch_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_256_allocations_allocation_id_patch_reader ... ok +{"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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5913d59a-5958-489c-a42f-f1753ad946d3 +Openstack-Request-Id: req-b9f10a79-e90f-41c2-bb93-9e5c5f26a6df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "2b36fc09-da83-490d-a131-ea30cf665aa7", "created_at": "2025-02-07T21:35:00.177833+00:00", "updated_at": "2025-02-07T21:35:00.196009+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/2b36fc09-da83-490d-a131-ea30cf665aa7", "rel": "self"}, {"href": "http://localhost/allocations/2b36fc09-da83-490d-a131-ea30cf665aa7", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5913d59a-5958-489c-a42f-f1753ad946d3 +Openstack-Request-Id: req-b9f10a79-e90f-41c2-bb93-9e5c5f26a6df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "2b36fc09-da83-490d-a131-ea30cf665aa7", "created_at": "2025-02-07T21:35:00.177833+00:00", "updated_at": "2025-02-07T21:35:00.196009+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/2b36fc09-da83-490d-a131-ea30cf665aa7", "rel": "self"}, {"href": "http://localhost/allocations/2b36fc09-da83-490d-a131-ea30cf665aa7", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path get /v1/allocations/4626bef1-9158-4ae5-abab-5fc161deca93 -GET: /v1/allocations/4626bef1-9158-4ae5-abab-5fc161deca93 {} +{"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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-71c2e7e3-47e2-4e64-b55f-8eaabc393b91 +Openstack-Request-Id: req-0104b685-b0bd-439b-8b47-5791fe179bdd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "4626bef1-9158-4ae5-abab-5fc161deca93", "created_at": "2025-02-07T21:35:02.173600+00:00", "updated_at": "2025-02-07T21:35:02.209045+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/4626bef1-9158-4ae5-abab-5fc161deca93", "rel": "self"}, {"href": "http://localhost/allocations/4626bef1-9158-4ae5-abab-5fc161deca93", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-71c2e7e3-47e2-4e64-b55f-8eaabc393b91 +Openstack-Request-Id: req-0104b685-b0bd-439b-8b47-5791fe179bdd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "4626bef1-9158-4ae5-abab-5fc161deca93", "created_at": "2025-02-07T21:35:02.173600+00:00", "updated_at": "2025-02-07T21:35:02.209045+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/4626bef1-9158-4ae5-abab-5fc161deca93", "rel": "self"}, {"href": "http://localhost/allocations/4626bef1-9158-4ae5-abab-5fc161deca93", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path patch /v1/allocations/c8598282-ab76-49a9-97a0-757b1c318559 -PATCH: /v1/allocations/c8598282-ab76-49a9-97a0-757b1c318559 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e77a9126-2158-47d1-a447-808221e18141 +Openstack-Request-Id: req-7144e45b-07dc-45fe-b341-d0b5f58e7f98 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "c8598282-ab76-49a9-97a0-757b1c318559", "created_at": "2025-02-07T21:35:04.104243+00:00", "updated_at": "2025-02-07T21:35:04.632189+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/c8598282-ab76-49a9-97a0-757b1c318559", "rel": "self"}, {"href": "http://localhost/allocations/c8598282-ab76-49a9-97a0-757b1c318559", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e77a9126-2158-47d1-a447-808221e18141 +Openstack-Request-Id: req-7144e45b-07dc-45fe-b341-d0b5f58e7f98 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "c8598282-ab76-49a9-97a0-757b1c318559", "created_at": "2025-02-07T21:35:04.104243+00:00", "updated_at": "2025-02-07T21:35:04.632189+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/c8598282-ab76-49a9-97a0-757b1c318559", "rel": "self"}, {"href": "http://localhost/allocations/c8598282-ab76-49a9-97a0-757b1c318559", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path patch /v1/allocations/62f539ef-e386-4c51-a499-36318261a6ac -PATCH: /v1/allocations/62f539ef-e386-4c51-a499-36318261a6ac [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e5b6b7ea-d54f-4dc4-ba2a-76c63e382782 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "62f539ef-e386-4c51-a499-36318261a6ac", "created_at": "2025-02-07T21:35:05.212976+00:00", "updated_at": "2025-02-07T21:35:05.506727+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/62f539ef-e386-4c51-a499-36318261a6ac", "rel": "self"}, {"href": "http://localhost/allocations/62f539ef-e386-4c51-a499-36318261a6ac", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-e5b6b7ea-d54f-4dc4-ba2a-76c63e382782 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "62f539ef-e386-4c51-a499-36318261a6ac", "created_at": "2025-02-07T21:35:05.212976+00:00", "updated_at": "2025-02-07T21:35:05.506727+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/62f539ef-e386-4c51-a499-36318261a6ac", "rel": "self"}, {"href": "http://localhost/allocations/62f539ef-e386-4c51-a499-36318261a6ac", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path patch /v1/allocations/a623635a-4ad5-4d89-bf09-424f791cd2aa -PATCH: /v1/allocations/a623635a-4ad5-4d89-bf09-424f791cd2aa [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-4294f7e3-430f-46a0-9cc1-47f3fc2ab510 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-4294f7e3-430f-46a0-9cc1-47f3fc2ab510 +Openstack-Request-Id: req-f610535e-0c53-4870-ad55-caf316fb0322 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} +{"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"}]} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_202_nodes_volume_connectors_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_202_nodes_volume_connectors_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_255_allocations_allocation_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_255_allocations_allocation_id_patch_admin ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_with_kernel_arg +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_with_kernel_arg ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_302_node_history_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_302_node_history_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_236_lessee_member_cannot_delete_traits +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_236_lessee_member_cannot_delete_traits ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_203_nodes_volume_connectors_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_203_nodes_volume_connectors_get_reader ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_with_fallback +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_with_fallback ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_256_allocations_allocation_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_256_allocations_allocation_id_patch_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_237_third_party_admin_cannot_delete_traits +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_237_third_party_admin_cannot_delete_traits ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_303_node_history_get_entry_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_303_node_history_get_entry_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_204_nodes_volume_targets_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_204_nodes_volume_targets_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_238_owner_admin_can_put_custom_traits +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_238_owner_admin_can_put_custom_traits ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_304_node_history_get_entry_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_304_node_history_get_entry_member ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_257_allocations_allocation_id_patch_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_257_allocations_allocation_id_patch_observer ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_205_nodes_volume_targets_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_205_nodes_volume_targets_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_305_node_history_get_entry_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_305_node_history_get_entry_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_239_owner_manager_can_put_custom_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_239_owner_manager_can_put_custom_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_163_portgroups_ports_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_163_portgroups_ports_detail_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_299_chassis_chassis_id_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_299_chassis_chassis_id_delete_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_257_allocations_allocation_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_257_allocations_allocation_id_delete_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_258_allocations_allocation_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_258_allocations_allocation_id_delete_admin ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_cleaning +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_cleaning ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_206_nodes_volume_targets_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_206_nodes_volume_targets_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_001_values +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_001_values ... skipped 'These are fake reference values for YAML templating' ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_240_owner_member_cannot_put_custom_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_240_owner_member_cannot_put_custom_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_300_node_history_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_300_node_history_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_164_portgroups_ports_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_164_portgroups_ports_detail_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_258_allocations_allocation_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_258_allocations_allocation_id_delete_member ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_207_drivers_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_207_drivers_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_259_allocations_allocation_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_259_allocations_allocation_id_delete_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_002_nodes_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_002_nodes_post_admin ... ok GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-10adb957-67f0-406b-865e-a819b1dd1213 +Openstack-Request-Id: req-a04b96d7-e003-465f-952f-2f7095e4aaf9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-10adb957-67f0-406b-865e-a819b1dd1213 +Openstack-Request-Id: req-a04b96d7-e003-465f-952f-2f7095e4aaf9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41170,14 +41311,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9954f0b8-bdef-47cb-bdcd-b8d368cf2565 +Openstack-Request-Id: req-6f74a92b-4234-41f7-85a7-702623ccd35b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9954f0b8-bdef-47cb-bdcd-b8d368cf2565 +Openstack-Request-Id: req-6f74a92b-4234-41f7-85a7-702623ccd35b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41186,14 +41327,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-daf8cd70-5d69-4bb6-abd5-1248afa4b836 +Openstack-Request-Id: req-64a2ff41-4060-4e3d-8009-4d07dd915fe8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-daf8cd70-5d69-4bb6-abd5-1248afa4b836 +Openstack-Request-Id: req-64a2ff41-4060-4e3d-8009-4d07dd915fe8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41202,14 +41343,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2585df76-04a7-4462-bc00-c4d86be078b9 +Openstack-Request-Id: req-a9cc42cf-b0fe-4826-b219-34931e3a0faf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2585df76-04a7-4462-bc00-c4d86be078b9 +Openstack-Request-Id: req-a9cc42cf-b0fe-4826-b219-34931e3a0faf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41218,14 +41359,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_MEOW GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7fb909d1-0fff-432a-9019-1e8d544c56b0 +Openstack-Request-Id: req-55e29e4b-1422-4765-a0ac-d312cfcbdbb0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7fb909d1-0fff-432a-9019-1e8d544c56b0 +Openstack-Request-Id: req-55e29e4b-1422-4765-a0ac-d312cfcbdbb0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41234,14 +41375,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_TRAIT2 None GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-5630aca3-7f4d-4a69-a2ee-b75dd91f30ec +Openstack-Request-Id: req-cfd3c334-a35d-4f97-a962-fc63ceed7810 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-5630aca3-7f4d-4a69-a2ee-b75dd91f30ec +Openstack-Request-Id: req-cfd3c334-a35d-4f97-a962-fc63ceed7810 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41250,14 +41391,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_TRAIT2 None GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d6ec6dc5-2d3b-4be0-a824-4a6656fada95 +Openstack-Request-Id: req-41056e7c-bf00-45e0-a3c2-815733333a6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d6ec6dc5-2d3b-4be0-a824-4a6656fada95 +Openstack-Request-Id: req-41056e7c-bf00-45e0-a3c2-815733333a6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41266,14 +41407,14 @@ PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/traits/CUSTOM_TRAIT2 None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fcd5329f-0797-4b2a-b5dd-fc9db19b9038 +Openstack-Request-Id: req-ae6c5c3d-bfa5-4d87-a1bc-9e59a64bd70f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fcd5329f-0797-4b2a-b5dd-fc9db19b9038 +Openstack-Request-Id: req-ae6c5c3d-bfa5-4d87-a1bc-9e59a64bd70f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41282,434 +41423,425 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 None ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_241_lessee_admin_cannot_put_custom_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_241_lessee_admin_cannot_put_custom_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_301_node_history_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_301_node_history_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_165_portgroups_ports_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_165_portgroups_ports_detail_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_259_allocations_allocation_id_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_259_allocations_allocation_id_delete_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_302_node_history_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_302_node_history_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_166_volume_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_166_volume_get_admin ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_208_drivers_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_208_drivers_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_242_lessee_manager_cannot_put_custom_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_242_lessee_manager_cannot_put_custom_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_260_nodes_allocation_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_260_nodes_allocation_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_303_node_history_get_entry_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_303_node_history_get_entry_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_243_lessee_member_cannot_put_custom_traits -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_243_lessee_member_cannot_put_custom_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_167_volume_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_167_volume_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_261_nodes_allocation_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_261_nodes_allocation_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_003_nodes_post_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_003_nodes_post_member ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-fb500a09-87d8-4dde-bf9b-3cad92e50c83 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "c83676e7-dda1-4b6a-a5d4-af93a644c1ac", "created_at": "2024-01-06T15:35:54.194391+00:00", "updated_at": "2024-01-06T15:35:54.203831+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/c83676e7-dda1-4b6a-a5d4-af93a644c1ac", "rel": "self"}, {"href": "http://localhost/allocations/c83676e7-dda1-4b6a-a5d4-af93a644c1ac", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cf248393-9fe5-4b73-a92c-5c947802622b +Openstack-Request-Id: req-fb500a09-87d8-4dde-bf9b-3cad92e50c83 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:35:00.925156+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +{"uuid": "c83676e7-dda1-4b6a-a5d4-af93a644c1ac", "created_at": "2024-01-06T15:35:54.194391+00:00", "updated_at": "2024-01-06T15:35:54.203831+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/c83676e7-dda1-4b6a-a5d4-af93a644c1ac", "rel": "self"}, {"href": "http://localhost/allocations/c83676e7-dda1-4b6a-a5d4-af93a644c1ac", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path patch /v1/allocations/0ee89639-cd9e-4182-8b50-45677113c91f +PATCH: /v1/allocations/0ee89639-cd9e-4182-8b50-45677113c91f [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-feb3d5dc-1815-4148-a248-1e00db90351b +Openstack-Request-Id: req-5e5384bc-5d10-4567-a99b-617f77b5e108 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} +{"uuid": "0ee89639-cd9e-4182-8b50-45677113c91f", "created_at": "2024-01-06T15:35:54.348570+00:00", "updated_at": "2024-01-06T15:35:54.440837+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/0ee89639-cd9e-4182-8b50-45677113c91f", "rel": "self"}, {"href": "http://localhost/allocations/0ee89639-cd9e-4182-8b50-45677113c91f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-feb3d5dc-1815-4148-a248-1e00db90351b +Openstack-Request-Id: req-5e5384bc-5d10-4567-a99b-617f77b5e108 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +{"uuid": "0ee89639-cd9e-4182-8b50-45677113c91f", "created_at": "2024-01-06T15:35:54.348570+00:00", "updated_at": "2024-01-06T15:35:54.440837+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/0ee89639-cd9e-4182-8b50-45677113c91f", "rel": "self"}, {"href": "http://localhost/allocations/0ee89639-cd9e-4182-8b50-45677113c91f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path patch /v1/allocations/87a5abe9-6844-4118-b838-238042146312 +PATCH: /v1/allocations/87a5abe9-6844-4118-b838-238042146312 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-13f59e0a-c5fc-466a-8559-0aea94034b43 +Openstack-Request-Id: req-a27790fc-22bd-4dcc-b4ee-1e8da1d5af91 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 87a5abe9-6844-4118-b838-238042146312 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-13f59e0a-c5fc-466a-8559-0aea94034b43 +Openstack-Request-Id: req-a27790fc-22bd-4dcc-b4ee-1e8da1d5af91 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 87a5abe9-6844-4118-b838-238042146312 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/allocations/b400418d-9dd6-4b33-a00e-8933a0907456 +PATCH: /v1/allocations/b400418d-9dd6-4b33-a00e-8933a0907456 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-780c3be6-66ae-423e-919c-c9d6e340e777 +Openstack-Request-Id: req-3f6f55cb-5e92-4914-9b6e-9c6cb7a3aeb4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-780c3be6-66ae-423e-919c-c9d6e340e777 +Openstack-Request-Id: req-3f6f55cb-5e92-4914-9b6e-9c6cb7a3aeb4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/ab1b05d0-478e-4753-86fc-81d182bd7944 +DELETE: /v1/allocations/ab1b05d0-478e-4753-86fc-81d182bd7944 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ff3f9218-dca1-4960-91c8-22ffd4e9d39e +Openstack-Request-Id: req-5d5a008d-5715-4d8c-bec7-34218b041423 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ff3f9218-dca1-4960-91c8-22ffd4e9d39e +Openstack-Request-Id: req-5d5a008d-5715-4d8c-bec7-34218b041423 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/682360c2-0d81-46cb-8a89-edafb53eda60 +DELETE: /v1/allocations/682360c2-0d81-46cb-8a89-edafb53eda60 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8cde7a41-101f-49d3-bc36-4d5086a6b222 +Openstack-Request-Id: req-331a7955-cf21-442f-a133-050c194aab14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 682360c2-0d81-46cb-8a89-edafb53eda60 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8cde7a41-101f-49d3-bc36-4d5086a6b222 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-5a370357-209c-463c-8b63-5e17149597bc +Openstack-Request-Id: req-331a7955-cf21-442f-a133-050c194aab14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 682360c2-0d81-46cb-8a89-edafb53eda60 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/700cbe77-c26f-4545-a338-9bb7c97f8a0d +DELETE: /v1/allocations/700cbe77-c26f-4545-a338-9bb7c97f8a0d +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5a370357-209c-463c-8b63-5e17149597bc +Openstack-Request-Id: req-197ec8bf-707b-4f48-8298-189b76d504bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -API ACL Testing Path get /v1/volume -GET: /v1/volume {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_260_allocations_allocation_id_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_260_allocations_allocation_id_delete_observer ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_209_drivers_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_209_drivers_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_243_lessee_member_cannot_put_custom_traits +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_243_lessee_member_cannot_put_custom_traits ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_261_nodes_allocation_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_261_nodes_allocation_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_244_third_party_admin_cannot_put_custom_traits +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_244_third_party_admin_cannot_put_custom_traits ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_262_nodes_allocation_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_262_nodes_allocation_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_245_owner_reader_get_vifs +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_245_owner_reader_get_vifs ... ok +API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-1aee1769-6d73-4439-9246-2a5044aac688 +Openstack-Request-Id: req-00e359c8-6015-4247-a07c-2232798ab8dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"role:member and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-1aee1769-6d73-4439-9246-2a5044aac688 +Openstack-Request-Id: req-a88e3fcf-2f55-48b5-9858-2436bb31a527 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/volume -GET: /v1/volume {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"role:member and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-9f598a9f-eb78-47f5-a403-e57eb7766c6f +Openstack-Request-Id: req-494d83be-f43b-4cea-9d09-01587a27effa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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}"} +API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-9f598a9f-eb78-47f5-a403-e57eb7766c6f +Openstack-Request-Id: req-55e9090c-2ced-49f4-a1b4-a04609ec2d69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume -GET: /v1/volume {} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_304_node_history_get_entry_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_304_node_history_get_entry_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_168_volume_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_168_volume_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_244_third_party_admin_cannot_put_custom_traits -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_244_third_party_admin_cannot_put_custom_traits ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_262_nodes_allocation_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_262_nodes_allocation_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_305_node_history_get_entry_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_305_node_history_get_entry_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_169_volume_connectors_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_169_volume_connectors_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_245_owner_reader_get_vifs -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_245_owner_reader_get_vifs ... ok -API ACL Testing Path delete /v1/allocations/0d4c1fa8-01cb-4518-9053-89a56efea31b -DELETE: /v1/allocations/0d4c1fa8-01cb-4518-9053-89a56efea31b -GOT:Response: 503 Service Unavailable +{"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}"} +API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-48b76857-7dd8-446b-9ec3-eb92662d4aa9 +Openstack-Request-Id: req-bc60d23c-8636-4389-9a92-a6a68d678f64 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"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}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-48b76857-7dd8-446b-9ec3-eb92662d4aa9 +Openstack-Request-Id: req-5cf0a197-962c-48d7-9b03-6ae4f90e369d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/08fc4cb6-e5a7-4a49-b6a6-0ec9bc16e141 -DELETE: /v1/allocations/08fc4cb6-e5a7-4a49-b6a6-0ec9bc16e141 -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-aea8d548-3765-4162-a8fe-33645b768ed9 +Openstack-Request-Id: req-bde5492e-5664-422a-a32c-2e853cb62156 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-aea8d548-3765-4162-a8fe-33645b768ed9 +Openstack-Request-Id: req-83d662b3-d7ae-422d-8d25-677c7aae38cf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/03d35349-db26-4b1f-838a-1dc89fcd21e3 -DELETE: /v1/allocations/03d35349-db26-4b1f-838a-1dc89fcd21e3 -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/82f8b285-8d7d-45cd-b506-bf4a99893918 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/82f8b285-8d7d-45cd-b506-bf4a99893918 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-67807d2b-2a52-4319-8869-a32f0d155e78 +Openstack-Request-Id: req-95c372b9-b2ce-4577-a425-1fdba17e1c84 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9a7b2b6f-978d-4015-b427-0ea7b59284b9 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9a7b2b6f-978d-4015-b427-0ea7b59284b9 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-67807d2b-2a52-4319-8869-a32f0d155e78 +Openstack-Request-Id: req-92aad481-b10d-4837-8130-150c465094eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/fcbbc7f8-38ff-4108-ad9b-5bc771ad26a5 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/fcbbc7f8-38ff-4108-ad9b-5bc771ad26a5 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-dae32188-cce4-4acd-9a3d-3b1ab7c29c1b +Openstack-Request-Id: req-3945912f-121b-416a-9654-edfb62d3b404 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "4d5eee36-aad1-4747-9482-439cf38def75", "created_at": "2025-02-07T21:35:13.649277+00:00", "updated_at": "2025-02-07T21:35:13.700670+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/4d5eee36-aad1-4747-9482-439cf38def75", "rel": "self"}, {"href": "http://localhost/allocations/4d5eee36-aad1-4747-9482-439cf38def75", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dae32188-cce4-4acd-9a3d-3b1ab7c29c1b +Openstack-Request-Id: req-1d186df3-8dda-4f1d-92e4-f04fd83ca65e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "4d5eee36-aad1-4747-9482-439cf38def75", "created_at": "2025-02-07T21:35:13.649277+00:00", "updated_at": "2025-02-07T21:35:13.700670+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/4d5eee36-aad1-4747-9482-439cf38def75", "rel": "self"}, {"href": "http://localhost/allocations/4d5eee36-aad1-4747-9482-439cf38def75", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8639d41d-9d7f-42ec-87d8-289b41677b3d +Openstack-Request-Id: req-7d60684d-ffd5-4fa5-93c4-21e1f721c2c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "314753a9-d454-4905-ba85-31e3d4c0273e", "created_at": "2025-02-07T21:35:15.518299+00:00", "updated_at": "2025-02-07T21:35:15.569781+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/314753a9-d454-4905-ba85-31e3d4c0273e", "rel": "self"}, {"href": "http://localhost/allocations/314753a9-d454-4905-ba85-31e3d4c0273e", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/nodes +POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_004_nodes_post_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_004_nodes_post_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_005_nodes_get_node_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_005_nodes_get_node_admin ... ok ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8639d41d-9d7f-42ec-87d8-289b41677b3d +Openstack-Request-Id: req-f610535e-0c53-4870-ad55-caf316fb0322 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "314753a9-d454-4905-ba85-31e3d4c0273e", "created_at": "2025-02-07T21:35:15.518299+00:00", "updated_at": "2025-02-07T21:35:15.569781+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/314753a9-d454-4905-ba85-31e3d4c0273e", "rel": "self"}, {"href": "http://localhost/allocations/314753a9-d454-4905-ba85-31e3d4c0273e", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} +{"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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-da9dbd6f-c76e-43ea-8a5f-c6359465d5cd +Openstack-Request-Id: req-12b76a25-a25e-45e9-8e35-f3d3f9fbdb1c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "637ae1d7-0747-4d86-9481-c219a93d01ad", "created_at": "2025-02-07T21:35:17.242414+00:00", "updated_at": "2025-02-07T21:35:17.271550+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/637ae1d7-0747-4d86-9481-c219a93d01ad", "rel": "self"}, {"href": "http://localhost/allocations/637ae1d7-0747-4d86-9481-c219a93d01ad", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +{"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-da9dbd6f-c76e-43ea-8a5f-c6359465d5cd -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "637ae1d7-0747-4d86-9481-c219a93d01ad", "created_at": "2025-02-07T21:35:17.242414+00:00", "updated_at": "2025-02-07T21:35:17.271550+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/637ae1d7-0747-4d86-9481-c219a93d01ad", "rel": "self"}, {"href": "http://localhost/allocations/637ae1d7-0747-4d86-9481-c219a93d01ad", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_001_values -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_001_values ... skipped 'These are fake reference values for YAML templating' -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_263_nodes_allocation_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_263_nodes_allocation_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_170_volume_connectors_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_170_volume_connectors_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_246_lessee_reader_get_vifs -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_246_lessee_reader_get_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_002_nodes_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_002_nodes_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_264_nodes_allocation_delete_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_264_nodes_allocation_delete_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_171_volume_connectors_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_171_volume_connectors_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_247_third_party_admin_cannot_get_vifs -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_247_third_party_admin_cannot_get_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_265_nodes_allocation_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_265_nodes_allocation_delete_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_003_nodes_post_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_003_nodes_post_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_172_volume_connectors_post_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_172_volume_connectors_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_248_owner_admin_can_post_vifs -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_248_owner_admin_can_post_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_266_deploy_templates_post_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_266_deploy_templates_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_173_volume_connectors_post_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_173_volume_connectors_post_member ... ok -API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-7ab29d01-0819-45f1-a5c6-31e17141fdff +Openstack-Request-Id: req-12b76a25-a25e-45e9-8e35-f3d3f9fbdb1c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"role:member and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] -GOT:Response: 500 Internal Server Error +{"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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a2ba5a0f-dc73-4fb1-902a-fe477ba08a10 +Openstack-Request-Id: req-a47d4d5a-fb17-4b51-8df5-2b25a5a91841 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"role:member and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GOT:Response: 500 Internal Server Error +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2ef89f4b-7a05-4a3c-a0cd-c7269c4fccec +Openstack-Request-Id: req-a47d4d5a-fb17-4b51-8df5-2b25a5a91841 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GOT:Response: 500 Internal Server Error +{"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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4b6a4c30-bf17-45a7-9f35-58bc7ef3076f +Openstack-Request-Id: req-bc0ecb4c-ceea-4009-af9f-35db7a90cb3a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GOT:Response: 500 Internal Server Error +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1a9af761-4480-47d8-80b7-d016a369edf1 +Openstack-Request-Id: req-bc0ecb4c-ceea-4009-af9f-35db7a90cb3a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} -GOT:Response: 404 Not Found +{"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"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e4099a0a-5efd-4638-8cf7-ab4f06ffe027 +Openstack-Request-Id: req-83e7e744-e8db-4591-b99c-4412818f9451 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} -GOT:Response: 404 Not Found +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-dcd16037-eb7d-4716-8956-3430e30454af +Openstack-Request-Id: req-83e7e744-e8db-4591-b99c-4412818f9451 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} -GOT:Response: 404 Not Found +{"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"}]} +API ACL Testing Path get /v1/drivers +GET: /v1/drivers {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6b9b9e79-2ea7-42d4-b0d0-3417488186b1 +Openstack-Request-Id: req-8abf8120-7cb3-4eda-8a52-9631e65bcb3c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/bff522aa-7bd7-42a1-a589-8bd8f1b23334 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/bff522aa-7bd7-42a1-a589-8bd8f1b23334 {} -GOT:Response: 404 Not Found +{"drivers": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3b0a65bc-056b-40b6-a6c2-9ebffeff169c +Openstack-Request-Id: req-8abf8120-7cb3-4eda-8a52-9631e65bcb3c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7acb1e42-bbd4-4627-bafc-a53eef71fcea -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7acb1e42-bbd4-4627-bafc-a53eef71fcea {} -GOT:Response: 404 Not Found +{"drivers": []} +API ACL Testing Path get /v1/drivers +GET: /v1/drivers {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0a2ee994-8b61-49f7-8b87-d1b804731540 +Openstack-Request-Id: req-51ef413b-8356-4af0-9d13-18ec2ef03fa8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7de19b4c-6b41-486e-af26-8e3d87cc1201 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7de19b4c-6b41-486e-af26-8e3d87cc1201 {} -GOT:Response: 404 Not Found +{"drivers": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d3ba2e62-6cb2-426d-b676-b051937bd822 +Openstack-Request-Id: req-51ef413b-8356-4af0-9d13-18ec2ef03fa8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 403 Forbidden +{"drivers": []} +API ACL Testing Path get /v1/drivers +GET: /v1/drivers {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-13252e77-6a93-4a0b-8d68-cb62851d24be +Openstack-Request-Id: req-c8cbba4d-9c2a-479b-889b-b918e94532ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -GOT:Response: 403 Forbidden +{"drivers": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8c1a81cd-14d3-41ed-b952-e21efcd37ded +Openstack-Request-Id: req-c8cbba4d-9c2a-479b-889b-b918e94532ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/nodes -POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_004_nodes_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_004_nodes_post_observer ... ok +{"drivers": []} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_210_drivers_driver_name_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_210_drivers_driver_name_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_211_drivers_driver_name_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_211_drivers_driver_name_get_member ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_006_nodes_get_node_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_006_nodes_get_node_member ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_263_nodes_allocation_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_263_nodes_allocation_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_246_lessee_reader_get_vifs +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_246_lessee_reader_get_vifs ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_212_drivers_driver_name_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_212_drivers_driver_name_get_reader ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_007_nodes_get_node_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_007_nodes_get_node_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_247_third_party_admin_cannot_get_vifs +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_247_third_party_admin_cannot_get_vifs ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_264_nodes_allocation_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_264_nodes_allocation_delete_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_008_nodes_get_node_other_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_008_nodes_get_node_other_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_213_drivers_properties_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_213_drivers_properties_get_admin ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_248_owner_admin_can_post_vifs +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_248_owner_admin_can_post_vifs ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_265_nodes_allocation_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_265_nodes_allocation_delete_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_009_nodes_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_009_nodes_get_admin ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_rescue +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_rescue ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_214_drivers_properties_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_214_drivers_properties_get_member ... ok GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-586eec1f-2989-4540-99f4-2ecb9ab11cf0 +Openstack-Request-Id: req-08bc24de-c470-4e1d-9301-85ff02445374 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-586eec1f-2989-4540-99f4-2ecb9ab11cf0 +Openstack-Request-Id: req-08bc24de-c470-4e1d-9301-85ff02445374 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41718,14 +41850,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-076d8757-63e9-4f78-bfa6-beddf8f0a216 +Openstack-Request-Id: req-8ddd647b-e354-4d9a-ab80-c844bab2b8f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-076d8757-63e9-4f78-bfa6-beddf8f0a216 +Openstack-Request-Id: req-8ddd647b-e354-4d9a-ab80-c844bab2b8f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41734,14 +41866,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-09e820e0-b0c4-4f5a-804c-91e410aa5a05 +Openstack-Request-Id: req-3104dc48-0fd0-4ccb-93ec-ca6fdc5c40fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-09e820e0-b0c4-4f5a-804c-91e410aa5a05 +Openstack-Request-Id: req-3104dc48-0fd0-4ccb-93ec-ca6fdc5c40fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41750,14 +41882,14 @@ PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/traits/CUSTOM_TRAIT2 None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0e5dd3a2-3cd4-4858-b581-1cb46fadbee1 +Openstack-Request-Id: req-81742c13-b32c-42ea-a964-c11764b72d10 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0e5dd3a2-3cd4-4858-b581-1cb46fadbee1 +Openstack-Request-Id: req-81742c13-b32c-42ea-a964-c11764b72d10 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41766,14 +41898,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d2800213-3ce5-4d04-beee-cc628286b410 +Openstack-Request-Id: req-cc2f1406-8d36-4953-a129-101804e39b27 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d2800213-3ce5-4d04-beee-cc628286b410 +Openstack-Request-Id: req-cc2f1406-8d36-4953-a129-101804e39b27 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41782,14 +41914,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-94c67723-4175-48cd-adfc-a7d0ed3e1ee5 +Openstack-Request-Id: req-483915bb-8f91-48e1-ac68-5ee9970e1ff2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-94c67723-4175-48cd-adfc-a7d0ed3e1ee5 +Openstack-Request-Id: req-483915bb-8f91-48e1-ac68-5ee9970e1ff2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41798,14 +41930,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b756d78b-363b-418d-b6d0-51a404b97eec +Openstack-Request-Id: req-8b1d4f69-e540-4369-8b31-ce2a690982e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b756d78b-363b-418d-b6d0-51a404b97eec +Openstack-Request-Id: req-8b1d4f69-e540-4369-8b31-ce2a690982e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41814,14 +41946,14 @@ POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c4c07222-72d9-41b1-b4a7-ca959ebe0c7d +Openstack-Request-Id: req-23fedc20-ebda-4541-8a9c-b5dae3a8f2d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c4c07222-72d9-41b1-b4a7-ca959ebe0c7d +Openstack-Request-Id: req-23fedc20-ebda-4541-8a9c-b5dae3a8f2d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -41830,204 +41962,355 @@ POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_249_owner_manager_can_post_vifs ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_249_owner_manager_can_post_vifs ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_266_nodes_allocation_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_266_nodes_allocation_delete_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_010_nodes_get_other_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_010_nodes_get_other_admin ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_215_drivers_properties_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_215_drivers_properties_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_250_lessee_admin_can_post_vifs +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_250_lessee_admin_can_post_vifs ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_011_nodes_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_011_nodes_detail_get_admin ... ok +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-197ec8bf-707b-4f48-8298-189b76d504bf +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-70fc90dc-0996-42d7-9540-d521d863e097 +Openstack-Request-Id: req-96a8f1b1-32e5-4592-afa7-43157b957f95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} +{"uuid": "69b5fd3e-f400-431f-976c-a9d97bbd8e8d", "created_at": "2024-01-06T15:35:55.368490+00:00", "updated_at": "2024-01-06T15:35:55.380176+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/69b5fd3e-f400-431f-976c-a9d97bbd8e8d", "rel": "self"}, {"href": "http://localhost/allocations/69b5fd3e-f400-431f-976c-a9d97bbd8e8d", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-70fc90dc-0996-42d7-9540-d521d863e097 +Openstack-Request-Id: req-96a8f1b1-32e5-4592-afa7-43157b957f95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/volume/connectors -GET: /v1/volume/connectors {} -GOT:Response: 200 OK +{"uuid": "69b5fd3e-f400-431f-976c-a9d97bbd8e8d", "created_at": "2024-01-06T15:35:55.368490+00:00", "updated_at": "2024-01-06T15:35:55.380176+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/69b5fd3e-f400-431f-976c-a9d97bbd8e8d", "rel": "self"}, {"href": "http://localhost/allocations/69b5fd3e-f400-431f-976c-a9d97bbd8e8d", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-dbacaccf-ff83-46c3-a36a-01d83d87bc1a +Openstack-Request-Id: req-fe5284a5-a9d4-40e9-8629-3d813e02fd76 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-dbacaccf-ff83-46c3-a36a-01d83d87bc1a +Openstack-Request-Id: req-fe5284a5-a9d4-40e9-8629-3d813e02fd76 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/volume/connectors -GET: /v1/volume/connectors {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-48923421-3210-44e8-a730-2af8c57f6731 +Openstack-Request-Id: req-75437dfc-ab9a-4c9f-bf21-bb48fde8c416 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "281432bb-a516-401c-be46-ece3dd95cd23", "created_at": "2024-01-06T15:35:55.643976+00:00", "updated_at": "2024-01-06T15:35:55.654479+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/281432bb-a516-401c-be46-ece3dd95cd23", "rel": "self"}, {"href": "http://localhost/allocations/281432bb-a516-401c-be46-ece3dd95cd23", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-48923421-3210-44e8-a730-2af8c57f6731 +Openstack-Request-Id: req-75437dfc-ab9a-4c9f-bf21-bb48fde8c416 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/connectors -GET: /v1/volume/connectors {} -GOT:Response: 200 OK +{"uuid": "281432bb-a516-401c-be46-ece3dd95cd23", "created_at": "2024-01-06T15:35:55.643976+00:00", "updated_at": "2024-01-06T15:35:55.654479+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/281432bb-a516-401c-be46-ece3dd95cd23", "rel": "self"}, {"href": "http://localhost/allocations/281432bb-a516-401c-be46-ece3dd95cd23", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path delete /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f175b036-8ed6-4bd2-837c-d2ec0be71c85 +Openstack-Request-Id: req-d07f7735-d929-48cf-b9c6-e8abc584c899 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f175b036-8ed6-4bd2-837c-d2ec0be71c85 +Openstack-Request-Id: req-d07f7735-d929-48cf-b9c6-e8abc584c899 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path post /v1/volume/connectors -POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/volume/connectors/c6182a1e-7b61-4128-891a-e258bfc8d19b -Openstack-Request-Id: req-135f8967-b6c4-4c2e-97d8-133378e2031a +Openstack-Request-Id: req-cf5e1971-2648-4627-82c2-bfc79eb40cdf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "c6182a1e-7b61-4128-891a-e258bfc8d19b", "created_at": "2025-02-07T21:35:23.457330+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/c6182a1e-7b61-4128-891a-e258bfc8d19b", "rel": "self"}, {"href": "http://localhost/volume/connectors/c6182a1e-7b61-4128-891a-e258bfc8d19b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -ACL Test GOT Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/volume/connectors/c6182a1e-7b61-4128-891a-e258bfc8d19b -Openstack-Request-Id: req-135f8967-b6c4-4c2e-97d8-133378e2031a +Openstack-Request-Id: req-cf5e1971-2648-4627-82c2-bfc79eb40cdf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "c6182a1e-7b61-4128-891a-e258bfc8d19b", "created_at": "2025-02-07T21:35:23.457330+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/c6182a1e-7b61-4128-891a-e258bfc8d19b", "rel": "self"}, {"href": "http://localhost/volume/connectors/c6182a1e-7b61-4128-891a-e258bfc8d19b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -API ACL Testing Path post /v1/volume/connectors -POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-409e3048-10b5-4d8e-bf54-703a436049ae +Openstack-Request-Id: req-7588786b-d33c-473c-8d81-174f6c701621 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-409e3048-10b5-4d8e-bf54-703a436049ae +Openstack-Request-Id: req-7588786b-d33c-473c-8d81-174f6c701621 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/volume/connectors -POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_267_deploy_templates_post_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_267_deploy_templates_post_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_174_volume_connectors_post_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_174_volume_connectors_post_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_005_nodes_get_node_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_005_nodes_get_node_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_250_lessee_admin_can_post_vifs -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_250_lessee_admin_can_post_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_268_deploy_templates_post_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_268_deploy_templates_post_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_006_nodes_get_node_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_006_nodes_get_node_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_175_volume_volume_connector_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_175_volume_volume_connector_id_get_admin ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/deploy_templates +POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_267_deploy_templates_post_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_267_deploy_templates_post_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_012_nodes_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_012_nodes_detail_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_216_drivers_raid_logical_disk_properties_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_216_drivers_raid_logical_disk_properties_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_251_lessee_manager_can_post_vifs ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_251_lessee_manager_can_post_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_007_nodes_get_node_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_007_nodes_get_node_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_269_deploy_templates_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_269_deploy_templates_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_176_volume_volume_connector_id_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_176_volume_volume_connector_id_get_member ... ok -API ACL Testing Path delete /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -GOT:Response: 503 Service Unavailable +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_013_nodes_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_013_nodes_detail_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_268_deploy_templates_post_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_268_deploy_templates_post_member ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_217_drivers_raid_logical_disk_properties_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_217_drivers_raid_logical_disk_properties_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_252_owner_member_can_post_vifs +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_252_owner_member_can_post_vifs ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_014_nodes_node_ident_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_014_nodes_node_ident_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_269_deploy_templates_post_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_269_deploy_templates_post_observer ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_015_nodes_node_ident_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_015_nodes_node_ident_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_253_lessee_member_cannot_post_vifs +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_253_lessee_member_cannot_post_vifs ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_218_drivers_raid_logical_disk_properties_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_218_drivers_raid_logical_disk_properties_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_270_deploy_templates_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_270_deploy_templates_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_016_nodes_node_ident_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_016_nodes_node_ident_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_271_deploy_templates_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_271_deploy_templates_get_member ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_254_owner_reader_cannot_post_vifs +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_254_owner_reader_cannot_post_vifs ... ok +API ACL Testing Path get /v1/drivers/fake-driverz +GET: /v1/drivers/fake-driverz {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f92ca7f5-2ebe-4378-ab63-490d8552e6ed +Openstack-Request-Id: req-aa5810f0-b7b5-4d29-bc6f-8100dc9b53e4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f92ca7f5-2ebe-4378-ab63-490d8552e6ed +Openstack-Request-Id: req-aa5810f0-b7b5-4d29-bc6f-8100dc9b53e4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz +GET: /v1/drivers/fake-driverz {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6d5d2425-4864-4e0e-ad95-bb255e59a42c +Openstack-Request-Id: req-680c835a-e6e7-48d9-8964-74a8ac9fb6cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6d5d2425-4864-4e0e-ad95-bb255e59a42c +Openstack-Request-Id: req-680c835a-e6e7-48d9-8964-74a8ac9fb6cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz +GET: /v1/drivers/fake-driverz {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a4a451f4-5c27-4881-ba7d-18feeac9beb7 +Openstack-Request-Id: req-104e95e0-1408-4ffb-9978-7cb8eb4d5c7b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a4a451f4-5c27-4881-ba7d-18feeac9beb7 +Openstack-Request-Id: req-104e95e0-1408-4ffb-9978-7cb8eb4d5c7b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/deploy_templates -POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/properties +GET: /v1/drivers/fake-driverz/properties {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-6f860996-7eae-49bc-aca8-30c0dc78b25f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-6f860996-7eae-49bc-aca8-30c0dc78b25f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/properties +GET: /v1/drivers/fake-driverz/properties {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-79135694-8499-4814-ae20-879bff324926 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-79135694-8499-4814-ae20-879bff324926 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/properties +GET: /v1/drivers/fake-driverz/properties {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-f9bd1a9e-6150-479c-a790-7888bb6c6bd4 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-f9bd1a9e-6150-479c-a790-7888bb6c6bd4 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties +GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-ef9cf7cf-1672-40ef-a28f-ce1d86efe24f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-ef9cf7cf-1672-40ef-a28f-ce1d86efe24f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties +GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-b49167ac-7774-4260-ad9d-886578145850 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-b49167ac-7774-4260-ad9d-886578145850 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties +GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-fa306756-7c87-4a9e-8989-c3ce8b1cec6d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-fa306756-7c87-4a9e-8989-c3ce8b1cec6d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods +GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_219_drivers_vendor_passthru_methods_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_219_drivers_vendor_passthru_methods_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_017_nodes_node_ident_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_017_nodes_node_ident_patch_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_272_deploy_templates_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_272_deploy_templates_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_255_lessee_reader_cannot_post_vifs +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_255_lessee_reader_cannot_post_vifs ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_220_drivers_vendor_passthru_methods_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_220_drivers_vendor_passthru_methods_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_018_nodes_node_ident_patch_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_018_nodes_node_ident_patch_member ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel ... ok GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/deploy_templates/71089cab-f66f-4292-a9d0-4a6d412f7c56 -Openstack-Request-Id: req-8a37342e-77df-4c65-bc56-62847c7578f7 +Location: http://localhost/v1/deploy_templates/d57c8be9-3e53-4db3-9d21-7909c9b122c6 +Openstack-Request-Id: req-cec069ca-a885-46f8-8c0f-e92a82c64aca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "71089cab-f66f-4292-a9d0-4a6d412f7c56", "created_at": "2025-02-07T21:35:24.951756+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/71089cab-f66f-4292-a9d0-4a6d412f7c56", "rel": "self"}, {"href": "http://localhost/deploy_templates/71089cab-f66f-4292-a9d0-4a6d412f7c56", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} +{"uuid": "d57c8be9-3e53-4db3-9d21-7909c9b122c6", "created_at": "2024-01-06T15:35:56.312240+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d57c8be9-3e53-4db3-9d21-7909c9b122c6", "rel": "self"}, {"href": "http://localhost/deploy_templates/d57c8be9-3e53-4db3-9d21-7909c9b122c6", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/deploy_templates/71089cab-f66f-4292-a9d0-4a6d412f7c56 -Openstack-Request-Id: req-8a37342e-77df-4c65-bc56-62847c7578f7 +Location: http://localhost/v1/deploy_templates/d57c8be9-3e53-4db3-9d21-7909c9b122c6 +Openstack-Request-Id: req-cec069ca-a885-46f8-8c0f-e92a82c64aca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "71089cab-f66f-4292-a9d0-4a6d412f7c56", "created_at": "2025-02-07T21:35:24.951756+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/71089cab-f66f-4292-a9d0-4a6d412f7c56", "rel": "self"}, {"href": "http://localhost/deploy_templates/71089cab-f66f-4292-a9d0-4a6d412f7c56", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} +{"uuid": "d57c8be9-3e53-4db3-9d21-7909c9b122c6", "created_at": "2024-01-06T15:35:56.312240+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d57c8be9-3e53-4db3-9d21-7909c9b122c6", "rel": "self"}, {"href": "http://localhost/deploy_templates/d57c8be9-3e53-4db3-9d21-7909c9b122c6", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} API ACL Testing Path post /v1/deploy_templates POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a61f8efc-10f0-45d6-a531-92675c2041af +Openstack-Request-Id: req-33dd2d4e-2bec-48dd-8276-0373ad70fa21 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a61f8efc-10f0-45d6-a531-92675c2041af +Openstack-Request-Id: req-33dd2d4e-2bec-48dd-8276-0373ad70fa21 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42036,14 +42319,14 @@ POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a2f56629-fb14-491d-bd72-6dd072ae5929 +Openstack-Request-Id: req-4d756f5b-b900-49ab-b47f-1d3e8b0c365b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a2f56629-fb14-491d-bd72-6dd072ae5929 +Openstack-Request-Id: req-4d756f5b-b900-49ab-b47f-1d3e8b0c365b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42052,271 +42335,227 @@ GET: /v1/deploy_templates {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cac397b9-538e-49de-b09f-9a0666eca652 +Openstack-Request-Id: req-1d995f92-eacb-49ff-892f-dc78a4690be3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"deploy_templates": [{"uuid": "b495d26d-4b87-459c-91e9-4f2d0b048f19", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/b495d26d-4b87-459c-91e9-4f2d0b048f19", "rel": "self"}, {"href": "http://localhost/deploy_templates/b495d26d-4b87-459c-91e9-4f2d0b048f19", "rel": "bookmark"}]}]} +{"deploy_templates": [{"uuid": "9c21fefe-9bfb-429b-ac3f-dda5a8b0f926", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/9c21fefe-9bfb-429b-ac3f-dda5a8b0f926", "rel": "self"}, {"href": "http://localhost/deploy_templates/9c21fefe-9bfb-429b-ac3f-dda5a8b0f926", "rel": "bookmark"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cac397b9-538e-49de-b09f-9a0666eca652 +Openstack-Request-Id: req-1d995f92-eacb-49ff-892f-dc78a4690be3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"deploy_templates": [{"uuid": "b495d26d-4b87-459c-91e9-4f2d0b048f19", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/b495d26d-4b87-459c-91e9-4f2d0b048f19", "rel": "self"}, {"href": "http://localhost/deploy_templates/b495d26d-4b87-459c-91e9-4f2d0b048f19", "rel": "bookmark"}]}]} +{"deploy_templates": [{"uuid": "9c21fefe-9bfb-429b-ac3f-dda5a8b0f926", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/9c21fefe-9bfb-429b-ac3f-dda5a8b0f926", "rel": "self"}, {"href": "http://localhost/deploy_templates/9c21fefe-9bfb-429b-ac3f-dda5a8b0f926", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/deploy_templates GET: /v1/deploy_templates {} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_270_deploy_templates_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_270_deploy_templates_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_008_nodes_get_node_other_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_008_nodes_get_node_other_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_252_owner_member_can_post_vifs -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_252_owner_member_can_post_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_177_volume_volume_connector_id_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_177_volume_volume_connector_id_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_271_deploy_templates_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_271_deploy_templates_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_009_nodes_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_009_nodes_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_253_lessee_member_cannot_post_vifs -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_253_lessee_member_cannot_post_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_272_deploy_templates_deploy_template_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_272_deploy_templates_deploy_template_id_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_178_volume_volume_connector_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_178_volume_volume_connector_id_patch_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_010_nodes_get_other_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_010_nodes_get_other_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_254_owner_reader_cannot_post_vifs -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_254_owner_reader_cannot_post_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_273_deploy_templates_deploy_template_id_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_273_deploy_templates_deploy_template_id_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_179_volume_volume_connector_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_179_volume_volume_connector_id_patch_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_011_nodes_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_011_nodes_detail_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_255_lessee_reader_cannot_post_vifs -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_255_lessee_reader_cannot_post_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_274_deploy_templates_deploy_template_id_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_274_deploy_templates_deploy_template_id_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_180_volume_volume_connector_id_patch_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_180_volume_volume_connector_id_patch_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_012_nodes_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_012_nodes_detail_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_256_third_party_admin_cannot_post_vifs -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_256_third_party_admin_cannot_post_vifs ... ok -GOT:Response: 200 OK +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-64d9480f-9ad1-4dd7-a2a7-a514106c5b85 +Openstack-Request-Id: req-2b497bd2-fea1-4425-b4d7-2108201eebf6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"deploy_templates": [{"uuid": "9063dc61-3616-4ced-9954-68ee96c1beaf", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/9063dc61-3616-4ced-9954-68ee96c1beaf", "rel": "self"}, {"href": "http://localhost/deploy_templates/9063dc61-3616-4ced-9954-68ee96c1beaf", "rel": "bookmark"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-64d9480f-9ad1-4dd7-a2a7-a514106c5b85 +Openstack-Request-Id: req-2b497bd2-fea1-4425-b4d7-2108201eebf6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"deploy_templates": [{"uuid": "9063dc61-3616-4ced-9954-68ee96c1beaf", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/9063dc61-3616-4ced-9954-68ee96c1beaf", "rel": "self"}, {"href": "http://localhost/deploy_templates/9063dc61-3616-4ced-9954-68ee96c1beaf", "rel": "bookmark"}]}]} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} API ACL Testing Path get /v1/deploy_templates GET: /v1/deploy_templates {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7547ea70-a9a7-42f9-adc5-371be36c8132 +Openstack-Request-Id: req-f4685e18-f3ac-48b7-981b-44ea79d0deb3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"deploy_templates": [{"uuid": "22f57eb2-72b4-47b6-bf05-46051635b7ac", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/22f57eb2-72b4-47b6-bf05-46051635b7ac", "rel": "self"}, {"href": "http://localhost/deploy_templates/22f57eb2-72b4-47b6-bf05-46051635b7ac", "rel": "bookmark"}]}]} +{"deploy_templates": [{"uuid": "31235904-d7f8-4be2-8334-798bb514c8f2", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/31235904-d7f8-4be2-8334-798bb514c8f2", "rel": "self"}, {"href": "http://localhost/deploy_templates/31235904-d7f8-4be2-8334-798bb514c8f2", "rel": "bookmark"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7547ea70-a9a7-42f9-adc5-371be36c8132 +Openstack-Request-Id: req-f4685e18-f3ac-48b7-981b-44ea79d0deb3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"deploy_templates": [{"uuid": "22f57eb2-72b4-47b6-bf05-46051635b7ac", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/22f57eb2-72b4-47b6-bf05-46051635b7ac", "rel": "self"}, {"href": "http://localhost/deploy_templates/22f57eb2-72b4-47b6-bf05-46051635b7ac", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/deploy_templates/5b773bf7-6589-441a-bc74-a71babad3767 -GET: /v1/deploy_templates/5b773bf7-6589-441a-bc74-a71babad3767 {} +{"deploy_templates": [{"uuid": "31235904-d7f8-4be2-8334-798bb514c8f2", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/31235904-d7f8-4be2-8334-798bb514c8f2", "rel": "self"}, {"href": "http://localhost/deploy_templates/31235904-d7f8-4be2-8334-798bb514c8f2", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/deploy_templates/6a384b47-4dac-47a7-8800-e77a492eadef +GET: /v1/deploy_templates/6a384b47-4dac-47a7-8800-e77a492eadef {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-09d4bc14-3d92-4e52-93cc-081a4f234897 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5b773bf7-6589-441a-bc74-a71babad3767", "created_at": "2025-02-07T21:35:32.771626+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/5b773bf7-6589-441a-bc74-a71babad3767", "rel": "self"}, {"href": "http://localhost/deploy_templates/5b773bf7-6589-441a-bc74-a71babad3767", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-09d4bc14-3d92-4e52-93cc-081a4f234897 +Openstack-Request-Id: req-9856da18-eae6-4f07-a8ec-f5aa64aa80e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "5b773bf7-6589-441a-bc74-a71babad3767", "created_at": "2025-02-07T21:35:32.771626+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/5b773bf7-6589-441a-bc74-a71babad3767", "rel": "self"}, {"href": "http://localhost/deploy_templates/5b773bf7-6589-441a-bc74-a71babad3767", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -API ACL Testing Path get /v1/deploy_templates/1395552f-d05c-4b66-a949-cff5efcb03a8 -GET: /v1/deploy_templates/1395552f-d05c-4b66-a949-cff5efcb03a8 {} -GOT:Response: 200 OK +{"uuid": "6a384b47-4dac-47a7-8800-e77a492eadef", "created_at": "2024-01-06T15:35:56.959586+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/6a384b47-4dac-47a7-8800-e77a492eadef", "rel": "self"}, {"href": "http://localhost/deploy_templates/6a384b47-4dac-47a7-8800-e77a492eadef", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_273_deploy_templates_deploy_template_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_273_deploy_templates_deploy_template_id_get_admin ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect" +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_256_third_party_admin_cannot_post_vifs +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_256_third_party_admin_cannot_post_vifs ... ok +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c8f4e9a5-3821-4815-a222-a18c7424c768 +Openstack-Request-Id: req-7b6c397a-fa7f-440e-a41e-af870997e74d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1395552f-d05c-4b66-a949-cff5efcb03a8", "created_at": "2025-02-07T21:35:34.254098+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1395552f-d05c-4b66-a949-cff5efcb03a8", "rel": "self"}, {"href": "http://localhost/deploy_templates/1395552f-d05c-4b66-a949-cff5efcb03a8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c8f4e9a5-3821-4815-a222-a18c7424c768 +Openstack-Request-Id: req-ac4fff52-9bcf-42b7-8db7-3fe6ea7b5655 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1395552f-d05c-4b66-a949-cff5efcb03a8", "created_at": "2025-02-07T21:35:34.254098+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1395552f-d05c-4b66-a949-cff5efcb03a8", "rel": "self"}, {"href": "http://localhost/deploy_templates/1395552f-d05c-4b66-a949-cff5efcb03a8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -API ACL Testing Path get /v1/deploy_templates/9e307822-9acc-4a90-840e-116767a8c53d -GET: /v1/deploy_templates/9e307822-9acc-4a90-840e-116767a8c53d {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bd3847e6-c3b3-4f3c-9ed8-d81b26fc0994 +Openstack-Request-Id: req-d0a47a7d-e9d1-46bb-a3fd-3fc1b14e6b0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "9e307822-9acc-4a90-840e-116767a8c53d", "created_at": "2025-02-07T21:35:35.647684+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9e307822-9acc-4a90-840e-116767a8c53d", "rel": "self"}, {"href": "http://localhost/deploy_templates/9e307822-9acc-4a90-840e-116767a8c53d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bd3847e6-c3b3-4f3c-9ed8-d81b26fc0994 +Openstack-Request-Id: req-acf487d1-cf3b-440b-b6b9-f946e9f88994 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "9e307822-9acc-4a90-840e-116767a8c53d", "created_at": "2025-02-07T21:35:35.647684+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9e307822-9acc-4a90-840e-116767a8c53d", "rel": "self"}, {"href": "http://localhost/deploy_templates/9e307822-9acc-4a90-840e-116767a8c53d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -API ACL Testing Path patch /v1/deploy_templates/0c520560-0a40-4e23-9252-5cc1ee78f70e -PATCH: /v1/deploy_templates/0c520560-0a40-4e23-9252-5cc1ee78f70e [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-01c44ce7-f0dc-4818-adb7-a1e8ab583d92 +Openstack-Request-Id: req-10615772-5a71-4ccb-8eac-2eda1f08561a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "0c520560-0a40-4e23-9252-5cc1ee78f70e", "created_at": "2025-02-07T21:35:36.237878+00:00", "updated_at": "2025-02-07T21:35:36.402221+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0c520560-0a40-4e23-9252-5cc1ee78f70e", "rel": "self"}, {"href": "http://localhost/deploy_templates/0c520560-0a40-4e23-9252-5cc1ee78f70e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_275_deploy_templates_deploy_template_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_275_deploy_templates_deploy_template_id_patch_admin ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b2b20e7e-a678-47e5-b235-c8a4b7f7bd96 +Openstack-Request-Id: req-703dd7f7-1151-46c6-9c6b-b3ca91621138 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-b2b20e7e-a678-47e5-b235-c8a4b7f7bd96 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes +GET: /v1/nodes {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5e40523b-6e26-4111-9dfd-c9285ba96a5f +Openstack-Request-Id: req-e13ebb3a-b3f6-43ca-9da2-473ddbfc56df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:35:28.056829+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"} +{"nodes": []} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5e40523b-6e26-4111-9dfd-c9285ba96a5f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:35:28.056829+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"} -API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-3adf73f4-d2e0-4894-82f3-c52f1f14d15a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-3adf73f4-d2e0-4894-82f3-c52f1f14d15a +Openstack-Request-Id: req-e13ebb3a-b3f6-43ca-9da2-473ddbfc56df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 200 OK +{"nodes": []} +API ACL Testing Path get /v1/nodes/detail +GET: /v1/nodes/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c493c7c2-bc9f-49db-b409-41e444754c11 +Openstack-Request-Id: req-358baaef-f8b4-4e6c-a0d0-88c8cd7ee5db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:35:31.002568+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"} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/detail +GET: /v1/nodes/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c493c7c2-bc9f-49db-b409-41e444754c11 +Openstack-Request-Id: req-d425f161-38c2-4ff6-9629-3690059a8cab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:35:31.002568+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"} -API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/detail +GET: /v1/nodes/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a9abfb97-7c82-4c1a-bbec-7be612adad2e +Openstack-Request-Id: req-4e45ab02-9047-4a96-8135-a46ec24a1318 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a9abfb97-7c82-4c1a-bbec-7be612adad2e +Openstack-Request-Id: req-eb553389-a01f-4f70-80da-ca817eaa5ec9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-89ecd88e-b252-4710-abf4-38216694e713 +Openstack-Request-Id: req-4b2747fe-b1f3-4913-8731-f17bb01779de X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-89ecd88e-b252-4710-abf4-38216694e713 +Openstack-Request-Id: req-15788e67-a571-4316-89aa-b65bfbb7e27d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-414809d0-4a8d-42b2-91c0-f6772b3f893b +Openstack-Request-Id: req-7ca0bd59-f293-45a2-b0aa-7f01cdd2759f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-414809d0-4a8d-42b2-91c0-f6772b3f893b +Openstack-Request-Id: req-e67bf885-da38-457b-810d-040dd97fccc8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_013_nodes_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_013_nodes_detail_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_181_volume_volume_connector_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_181_volume_volume_connector_id_delete_admin ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_019_nodes_node_ident_patch_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_019_nodes_node_ident_patch_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_221_drivers_vendor_passthru_methods_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_221_drivers_vendor_passthru_methods_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_member ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect" GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a2488ca1-e271-4cba-8aee-d6f8731ac723 +Openstack-Request-Id: req-969ecc7e-7f12-4d19-b6c4-f080d4ccf9b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a2488ca1-e271-4cba-8aee-d6f8731ac723 +Openstack-Request-Id: req-969ecc7e-7f12-4d19-b6c4-f080d4ccf9b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42325,14 +42564,14 @@ POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-74d79749-54a5-4e7c-9759-a61b1adb1e40 +Openstack-Request-Id: req-62c15541-95bd-4723-9fc1-7d624cce6591 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-74d79749-54a5-4e7c-9759-a61b1adb1e40 +Openstack-Request-Id: req-62c15541-95bd-4723-9fc1-7d624cce6591 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42341,14 +42580,14 @@ POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7e7d2e1e-1313-413c-9ba1-3b388d7136af +Openstack-Request-Id: req-4e85bb4b-319b-4af6-9893-902cb57de124 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7e7d2e1e-1313-413c-9ba1-3b388d7136af +Openstack-Request-Id: req-4e85bb4b-319b-4af6-9893-902cb57de124 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42357,14 +42596,14 @@ POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-817f0b3f-c397-4878-af23-635044a13b6f +Openstack-Request-Id: req-1f6af2f9-bfa1-4754-bda3-97594fcb1000 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-817f0b3f-c397-4878-af23-635044a13b6f +Openstack-Request-Id: req-1f6af2f9-bfa1-4754-bda3-97594fcb1000 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42373,14 +42612,14 @@ POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b1aeadd9-4294-4d9c-a504-ab599b9e4cc7 +Openstack-Request-Id: req-a78c9a79-d389-405f-8f06-0d0257246fd8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b1aeadd9-4294-4d9c-a504-ab599b9e4cc7 +Openstack-Request-Id: req-a78c9a79-d389-405f-8f06-0d0257246fd8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42389,14 +42628,14 @@ POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-77fe6664-db49-4abb-93de-236235fc6a31 +Openstack-Request-Id: req-a97fb960-212d-4cdc-bb6c-2fbdaddc01fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-77fe6664-db49-4abb-93de-236235fc6a31 +Openstack-Request-Id: req-a97fb960-212d-4cdc-bb6c-2fbdaddc01fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42405,14 +42644,14 @@ POST: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a1f08a46-a701-4170-8252-06ee78abb56a +Openstack-Request-Id: req-1922630c-2b68-41d4-baab-9fa774573320 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a1f08a46-a701-4170-8252-06ee78abb56a +Openstack-Request-Id: req-1922630c-2b68-41d4-baab-9fa774573320 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42421,454 +42660,508 @@ POST: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1650004a-cc0c-413f-8e6c-f7331f126036 +Openstack-Request-Id: req-c8329012-7b2d-4719-9dbf-dd786a39a83e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1650004a-cc0c-413f-8e6c-f7331f126036 +Openstack-Request-Id: req-c8329012-7b2d-4719-9dbf-dd786a39a83e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/vifs/0e21d58f-5de2-4956-85ff-33935ea1ca01 +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect" +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_020_nodes_node_ident_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_020_nodes_node_ident_delete_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_257_owner_admin_delete_vifs ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_257_owner_admin_delete_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_276_deploy_templates_deploy_template_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_276_deploy_templates_deploy_template_id_patch_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_014_nodes_node_ident_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_014_nodes_node_ident_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_182_volume_volume_connector_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_182_volume_volume_connector_id_delete_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_222_drivers_vendor_passthru_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_222_drivers_vendor_passthru_get_admin ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect" +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_021_nodes_node_ident_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_021_nodes_node_ident_delete_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_258_owner_manager_delete_vifs ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_258_owner_manager_delete_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_277_deploy_templates_deploy_template_id_patch_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_277_deploy_templates_deploy_template_id_patch_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_015_nodes_node_ident_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_015_nodes_node_ident_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_183_volume_volume_connector_id_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_183_volume_volume_connector_id_delete_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_278_deploy_templates_deploy_template_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_278_deploy_templates_deploy_template_id_delete_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_276_deploy_templates_deploy_template_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_276_deploy_templates_deploy_template_id_patch_admin ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect" +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_223_drivers_vendor_passthru_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_223_drivers_vendor_passthru_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_022_nodes_node_ident_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_022_nodes_node_ident_delete_observer ... ok +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_member ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_259_lessee_admin_can_delete_vifs ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_259_lessee_admin_can_delete_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_016_nodes_node_ident_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_016_nodes_node_ident_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_184_volume_targets_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_184_volume_targets_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_279_deploy_templates_deploy_template_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_279_deploy_templates_deploy_template_id_delete_member ... ok +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync +ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect" +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_023_nodes_validate_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_023_nodes_validate_get_admin ... ok +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_224_drivers_vendor_passthru_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_224_drivers_vendor_passthru_get_reader ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection_no_inspection_ramdisk +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection_no_inspection_ramdisk ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_observer ... ok +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_foreign_drives_with_foreign_drives +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_foreign_drives_with_foreign_drives ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_024_nodes_validate_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_024_nodes_validate_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_260_lessee_manager_can_delete_vifs ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_260_lessee_manager_can_delete_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_017_nodes_node_ident_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_017_nodes_node_ident_patch_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_185_volume_targets_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_185_volume_targets_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_280_deploy_templates_deploy_template_id_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_280_deploy_templates_deploy_template_id_delete_reader ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_no_image_source_for_local_boot +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_no_image_source_for_local_boot ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_225_drivers_vendor_passthru_post_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_225_drivers_vendor_passthru_post_admin ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync +ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect" +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_279_deploy_templates_deploy_template_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_279_deploy_templates_deploy_template_id_delete_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_foreign_drives_with_no_foreign_drives +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_foreign_drives_with_no_foreign_drives ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_025_nodes_validate_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_025_nodes_validate_get_observer ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_261_owner_member_can_delete_vifs ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_261_owner_member_can_delete_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_018_nodes_node_ident_patch_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_018_nodes_node_ident_patch_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_186_volume_targets_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_186_volume_targets_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_281_chassis_post_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_281_chassis_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_262_lessee_member_cannot_delete_vifs -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_262_lessee_member_cannot_delete_vifs ... ok -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-75ee3000-6113-40ff-93c0-5f4549965da8 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_apply_configuration +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_apply_configuration ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_226_drivers_vendor_passthru_post_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_226_drivers_vendor_passthru_post_member ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_026_nodes_maintenance_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_026_nodes_maintenance_put_admin ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist ... ok +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-486c3aef-0c26-462d-a98e-1367774486bd +Openstack-Request-Id: req-9856da18-eae6-4f07-a8ec-f5aa64aa80e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found +{"uuid": "6a384b47-4dac-47a7-8800-e77a492eadef", "created_at": "2024-01-06T15:35:56.959586+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/6a384b47-4dac-47a7-8800-e77a492eadef", "rel": "self"}, {"href": "http://localhost/deploy_templates/6a384b47-4dac-47a7-8800-e77a492eadef", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +API ACL Testing Path get /v1/deploy_templates/38243b34-afe5-4bd8-934c-d48d2f58e0dc +GET: /v1/deploy_templates/38243b34-afe5-4bd8-934c-d48d2f58e0dc {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-36623486-8987-4d41-af0c-88d7b8ce6dcb +Openstack-Request-Id: req-9883b6e7-0c83-45c5-84b6-4818121675c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6d0d1cf1-1cf7-42e0-b31a-ae1d11dba2f1 +Openstack-Request-Id: req-9883b6e7-0c83-45c5-84b6-4818121675c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/deploy_templates/8602f2fa-7c8c-4ab1-aff7-57452359089f +GET: /v1/deploy_templates/8602f2fa-7c8c-4ab1-aff7-57452359089f {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bae39362-20bb-4fa6-9b84-205e1b00fee6 +Openstack-Request-Id: req-2de460c0-c20b-4f29-8264-6796c8716d41 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes -GET: /v1/nodes {} -GOT:Response: 403 Forbidden +{"uuid": "8602f2fa-7c8c-4ab1-aff7-57452359089f", "created_at": "2024-01-06T15:35:57.204240+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/8602f2fa-7c8c-4ab1-aff7-57452359089f", "rel": "self"}, {"href": "http://localhost/deploy_templates/8602f2fa-7c8c-4ab1-aff7-57452359089f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7a2f98cc-26c3-4c7e-9376-39b2c7fb2a88 +Openstack-Request-Id: req-2de460c0-c20b-4f29-8264-6796c8716d41 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes -GET: /v1/nodes {} +{"uuid": "8602f2fa-7c8c-4ab1-aff7-57452359089f", "created_at": "2024-01-06T15:35:57.204240+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/8602f2fa-7c8c-4ab1-aff7-57452359089f", "rel": "self"}, {"href": "http://localhost/deploy_templates/8602f2fa-7c8c-4ab1-aff7-57452359089f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +API ACL Testing Path patch /v1/deploy_templates/c378e518-1128-47d5-be7a-60b5ca32632c +PATCH: /v1/deploy_templates/c378e518-1128-47d5-be7a-60b5ca32632c [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6148f14d-04a8-43bd-9842-b59580dcf764 +Openstack-Request-Id: req-3c624c55-95c5-4841-af94-689e1d3cdc29 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": []} +{"uuid": "c378e518-1128-47d5-be7a-60b5ca32632c", "created_at": "2024-01-06T15:35:57.383845+00:00", "updated_at": "2024-01-06T15:35:57.438773+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c378e518-1128-47d5-be7a-60b5ca32632c", "rel": "self"}, {"href": "http://localhost/deploy_templates/c378e518-1128-47d5-be7a-60b5ca32632c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6148f14d-04a8-43bd-9842-b59580dcf764 +Openstack-Request-Id: req-3c624c55-95c5-4841-af94-689e1d3cdc29 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"nodes": []} -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} +{"uuid": "c378e518-1128-47d5-be7a-60b5ca32632c", "created_at": "2024-01-06T15:35:57.383845+00:00", "updated_at": "2024-01-06T15:35:57.438773+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c378e518-1128-47d5-be7a-60b5ca32632c", "rel": "self"}, {"href": "http://localhost/deploy_templates/c378e518-1128-47d5-be7a-60b5ca32632c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +API ACL Testing Path patch /v1/deploy_templates/66157a38-1591-4044-a60c-b74ff2b82e75 +PATCH: /v1/deploy_templates/66157a38-1591-4044-a60c-b74ff2b82e75 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-901df482-2125-49a6-a93d-81f2906f5608 +Openstack-Request-Id: req-48fa58af-5907-42f5-aeb7-7f3af00fa855 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dc042e17-0de6-4f08-bce3-caedb59a9c00 +Openstack-Request-Id: req-48fa58af-5907-42f5-aeb7-7f3af00fa855 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/detail -GET: /v1/nodes/detail {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/deploy_templates/7b8d460b-2879-4dda-9731-fc622e16874e +PATCH: /v1/deploy_templates/7b8d460b-2879-4dda-9731-fc622e16874e [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8d8b0105-d5a0-4a49-abe0-d0057a898766 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-667281b5-e9f2-457f-8b2e-a37226476791 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-8f407580-6ea5-4825-a2b7-1b2e68ae4bd2 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-52c48706-8a87-4468-a879-1a8bc402f01a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-f6a59f70-7bdc-4a38-947a-677d6a6af6f3 +Openstack-Request-Id: req-e28f71ec-e49a-4241-9619-732d6c601559 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-589ca906-74da-4c8f-8b51-8f332a2b8728 +Openstack-Request-Id: req-e28f71ec-e49a-4241-9619-732d6c601559 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_019_nodes_node_ident_patch_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_019_nodes_node_ident_patch_observer ... ok -API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-9acd02d1-1403-459a-8e7c-28e36fdbe066 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/deploy_templates/e088915d-ec50-4e25-9074-f93004cd7c92 +DELETE: /v1/deploy_templates/e088915d-ec50-4e25-9074-f93004cd7c92 +GOT:Response: 204 No Content +Openstack-Request-Id: req-2763e21d-96ca-460d-b938-328e1f2108c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-9acd02d1-1403-459a-8e7c-28e36fdbe066 + +ACL Test GOT Response: 204 No Content +Openstack-Request-Id: req-2763e21d-96ca-460d-b938-328e1f2108c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 + +API ACL Testing Path delete /v1/deploy_templates/2d10e1b2-e271-4cd9-854a-23e3d6c88370 +DELETE: /v1/deploy_templates/2d10e1b2-e271-4cd9-854a-23e3d6c88370 +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_262_lessee_member_cannot_delete_vifs +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_262_lessee_member_cannot_delete_vifs ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_delete_existing +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_delete_existing ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso_and_image_source +ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso_and_image_source ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_observer ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-beb3fddb-3a51-4e75-b89c-14d03a62a6a1 +Openstack-Request-Id: req-af4a318b-827f-43f8-bd0a-ad504b97e2b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-beb3fddb-3a51-4e75-b89c-14d03a62a6a1 +Openstack-Request-Id: req-af4a318b-827f-43f8-bd0a-ad504b97e2b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods +GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c19ec84c-d430-4633-8714-0741c2af2002 +Openstack-Request-Id: req-acf5fd23-286d-4317-b253-7bcb63a4c403 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c19ec84c-d430-4633-8714-0741c2af2002 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/targets -GET: /v1/volume/targets {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-1ca6e698-9b07-47d7-aa00-ba8db036fa2d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-1ca6e698-9b07-47d7-aa00-ba8db036fa2d +Openstack-Request-Id: req-acf5fd23-286d-4317-b253-7bcb63a4c403 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/volume/targets -GET: /v1/volume/targets {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods +GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a04a6b36-3ec4-4d47-bf40-d03ef8e7cbfa +Openstack-Request-Id: req-8cbfbe6b-e7f1-4608-bebd-8843ea7629ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a04a6b36-3ec4-4d47-bf40-d03ef8e7cbfa -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/targets -GET: /v1/volume/targets {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-50633091-fa33-452c-b210-26c9f0358b0b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-50633091-fa33-452c-b210-26c9f0358b0b +Openstack-Request-Id: req-8cbfbe6b-e7f1-4608-bebd-8843ea7629ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path post /v1/volume/targets -POST: /v1/volume/targets {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test +GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/volume/targets/bfa1c9b0-eaaf-4546-98cb-c2f5a1a785e1 -Openstack-Request-Id: req-d1cbb117-5c61-4834-85ba-1b875232bdad +Openstack-Request-Id: req-c43f9eea-8e94-4859-82e1-bb5a3da9a915 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "bfa1c9b0-eaaf-4546-98cb-c2f5a1a785e1", "created_at": "2025-02-07T21:35:39.609236+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/bfa1c9b0-eaaf-4546-98cb-c2f5a1a785e1", "rel": "self"}, {"href": "http://localhost/volume/targets/bfa1c9b0-eaaf-4546-98cb-c2f5a1a785e1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_187_volume_targets_post_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_187_volume_targets_post_admin ... ok -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-01c44ce7-f0dc-4818-adb7-a1e8ab583d92 +Openstack-Request-Id: req-c43f9eea-8e94-4859-82e1-bb5a3da9a915 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "0c520560-0a40-4e23-9252-5cc1ee78f70e", "created_at": "2025-02-07T21:35:36.237878+00:00", "updated_at": "2025-02-07T21:35:36.402221+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0c520560-0a40-4e23-9252-5cc1ee78f70e", "rel": "self"}, {"href": "http://localhost/deploy_templates/0c520560-0a40-4e23-9252-5cc1ee78f70e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -API ACL Testing Path patch /v1/deploy_templates/589c9330-4dac-49c4-82c3-5f665c0e8992 -PATCH: /v1/deploy_templates/589c9330-4dac-49c4-82c3-5f665c0e8992 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test +GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-67f4ee64-6a3a-4a5d-badc-1d8e3f36f6d4 +Openstack-Request-Id: req-1c9d3921-01ee-468d-8be5-7dce4cadb275 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-67f4ee64-6a3a-4a5d-badc-1d8e3f36f6d4 +Openstack-Request-Id: req-1c9d3921-01ee-468d-8be5-7dce4cadb275 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/deploy_templates/c2a5a46b-c787-45e6-9e4a-8c77706b5f1d -PATCH: /v1/deploy_templates/c2a5a46b-c787-45e6-9e4a-8c77706b5f1d [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test +GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-89514cc2-30b0-438f-a4f4-7bd31913374b +Openstack-Request-Id: req-ac5daa14-f10f-49a4-a726-e5729829b3a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-89514cc2-30b0-438f-a4f4-7bd31913374b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/deploy_templates/e5d00c6c-4d58-4cdb-ba27-92ea4302c3c6 -DELETE: /v1/deploy_templates/e5d00c6c-4d58-4cdb-ba27-92ea4302c3c6 -GOT:Response: 204 No Content -Openstack-Request-Id: req-67069c42-0c7e-40db-bbcb-6616e7f2ac84 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -ACL Test GOT Response: 204 No Content -Openstack-Request-Id: req-67069c42-0c7e-40db-bbcb-6616e7f2ac84 +Openstack-Request-Id: req-ac5daa14-f10f-49a4-a726-e5729829b3a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 - -API ACL Testing Path delete /v1/deploy_templates/39b0038c-3b95-4702-96f3-463349b073f4 -DELETE: /v1/deploy_templates/39b0038c-3b95-4702-96f3-463349b073f4 -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/drivers/fake-driverz/vendor_passthru?method=test +POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3a2c30a9-fe22-474e-95b7-d1260786285f +Openstack-Request-Id: req-08306129-5851-4b54-b9f1-eb7a778e0b76 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3a2c30a9-fe22-474e-95b7-d1260786285f +Openstack-Request-Id: req-08306129-5851-4b54-b9f1-eb7a778e0b76 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/deploy_templates/2683ed90-2b73-460d-ba3f-a593d33faf66 -DELETE: /v1/deploy_templates/2683ed90-2b73-460d-ba3f-a593d33faf66 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/drivers/fake-driverz/vendor_passthru?method=test +POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e56b7722-f174-4d96-8019-fc010aa59c7e +Openstack-Request-Id: req-a55e4869-f3d1-4755-b81c-73928aab13e7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-e56b7722-f174-4d96-8019-fc010aa59c7e -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/chassis -POST: /v1/chassis {'description': 'test-chassis'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/chassis/541c2c77-9f1e-45fe-b44e-acef7e76669a -Openstack-Request-Id: req-209398f0-b041-4b2e-a219-e5800dc48c2c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "541c2c77-9f1e-45fe-b44e-acef7e76669a", "created_at": "2025-02-07T21:35:39.306044+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/541c2c77-9f1e-45fe-b44e-acef7e76669a", "rel": "self"}, {"href": "http://localhost/chassis/541c2c77-9f1e-45fe-b44e-acef7e76669a", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/541c2c77-9f1e-45fe-b44e-acef7e76669a/nodes", "rel": "self"}, {"href": "http://localhost/chassis/541c2c77-9f1e-45fe-b44e-acef7e76669a/nodes", "rel": "bookmark"}]]} -ACL Test GOT Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/chassis/541c2c77-9f1e-45fe-b44e-acef7e76669a -Openstack-Request-Id: req-209398f0-b041-4b2e-a219-e5800dc48c2c +Openstack-Request-Id: req-a55e4869-f3d1-4755-b81c-73928aab13e7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "541c2c77-9f1e-45fe-b44e-acef7e76669a", "created_at": "2025-02-07T21:35:39.306044+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/541c2c77-9f1e-45fe-b44e-acef7e76669a", "rel": "self"}, {"href": "http://localhost/chassis/541c2c77-9f1e-45fe-b44e-acef7e76669a", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/541c2c77-9f1e-45fe-b44e-acef7e76669a/nodes", "rel": "self"}, {"href": "http://localhost/chassis/541c2c77-9f1e-45fe-b44e-acef7e76669a/nodes", "rel": "bookmark"}]]} -API ACL Testing Path post /v1/chassis -POST: /v1/chassis {'description': 'test-chassis'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/drivers/fake-driverz/vendor_passthru?method=test +POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5a1c1007-2782-4ece-bc3e-09d04af80c75 +Openstack-Request-Id: req-db47ce2b-c694-4060-b102-d5e93629534b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_282_chassis_post_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_282_chassis_post_member ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_227_drivers_vendor_passthru_post_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_227_drivers_vendor_passthru_post_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_027_nodes_maintenance_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_027_nodes_maintenance_put_member ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist ... ok +ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_missing +ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_missing ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing ... ok +ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_set +ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_set ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_228_drivers_vendor_passthru_put_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_228_drivers_vendor_passthru_put_admin ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_028_nodes_maintenance_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_028_nodes_maintenance_put_observer ... ok +ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_missing +ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_missing ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_282_chassis_post_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_282_chassis_post_admin ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting ... ok +ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_default ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_229_drivers_vendor_passthru_put_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_229_drivers_vendor_passthru_put_member ... ok +ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_029_nodes_maintenance_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_029_nodes_maintenance_delete_admin ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate ... ok +ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_remove +ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_remove ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_283_chassis_post_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_283_chassis_post_member ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_230_drivers_vendor_passthru_put_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_230_drivers_vendor_passthru_put_reader ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_030_nodes_maintenance_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_030_nodes_maintenance_delete_member ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_263_third_party_admin_cannot_delete_vifs ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_263_third_party_admin_cannot_delete_vifs ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_020_nodes_node_ident_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_020_nodes_node_ident_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_188_volume_targets_post_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_188_volume_targets_post_member ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_231_drivers_vendor_passthru_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_231_drivers_vendor_passthru_delete_admin ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_284_chassis_post_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_284_chassis_post_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_031_nodes_maintenance_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_031_nodes_maintenance_delete_observer ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_with_sharing_disabled +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_with_sharing_disabled ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_264_owner_readers_can_get_indicators ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_264_owner_readers_can_get_indicators ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_283_chassis_post_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_283_chassis_post_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_021_nodes_node_ident_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_021_nodes_node_ident_delete_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_189_volume_targets_post_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_189_volume_targets_post_observer ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_232_drivers_vendor_passthru_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_232_drivers_vendor_passthru_delete_reader ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_clean +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_clean ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_285_chassis_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_285_chassis_get_admin ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_233_nodes_bios_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_233_nodes_bios_get_admin ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_deploy +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_deploy ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e7fb51fd-5ccc-40a9-8ecb-caa9531ecf5e +Openstack-Request-Id: req-695923d1-b410-4ba8-bd62-38ded2271449 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e7fb51fd-5ccc-40a9-8ecb-caa9531ecf5e +Openstack-Request-Id: req-695923d1-b410-4ba8-bd62-38ded2271449 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42877,14 +43170,14 @@ 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-e48c2b09-f687-40d9-a0a5-0ccfeb840553 +Openstack-Request-Id: req-9c4d613c-09c1-4dce-b858-6272ed43d550 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-e48c2b09-f687-40d9-a0a5-0ccfeb840553 +Openstack-Request-Id: req-9c4d613c-09c1-4dce-b858-6272ed43d550 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42893,14 +43186,14 @@ 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-c96bb3ff-8a38-45f8-91e0-f8af8ab556a2 +Openstack-Request-Id: req-e28d7b66-78f9-480c-ac9d-f6463c4f1c9f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c96bb3ff-8a38-45f8-91e0-f8af8ab556a2 +Openstack-Request-Id: req-e28d7b66-78f9-480c-ac9d-f6463c4f1c9f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42909,14 +43202,14 @@ 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-31bbf877-c4f0-4dae-b49b-b08934b30454 +Openstack-Request-Id: req-2375cd12-9e82-4de8-8b06-c8fbb1a5b70e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-31bbf877-c4f0-4dae-b49b-b08934b30454 +Openstack-Request-Id: req-2375cd12-9e82-4de8-8b06-c8fbb1a5b70e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42925,14 +43218,14 @@ 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-cb5dcc99-fa71-4fc9-a33d-5fbdcb9a80d9 +Openstack-Request-Id: req-9fdb417b-661c-4b95-8200-390962f8aafd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cb5dcc99-fa71-4fc9-a33d-5fbdcb9a80d9 +Openstack-Request-Id: req-9fdb417b-661c-4b95-8200-390962f8aafd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42941,14 +43234,14 @@ 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-f3602a1f-999e-4528-b8c1-ee623f6df534 +Openstack-Request-Id: req-8f9c5f7e-e790-4c3f-8673-7740ee10fd38 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f3602a1f-999e-4528-b8c1-ee623f6df534 +Openstack-Request-Id: req-8f9c5f7e-e790-4c3f-8673-7740ee10fd38 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42957,14 +43250,14 @@ 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-0177caf5-d9fc-4623-b53a-910206eca778 +Openstack-Request-Id: req-18eff61f-bc60-46e9-b203-6305b9587148 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0177caf5-d9fc-4623-b53a-910206eca778 +Openstack-Request-Id: req-18eff61f-bc60-46e9-b203-6305b9587148 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42973,14 +43266,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/indicators {} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ebd5b2d2-d911-408c-bd46-1776af906b42 +Openstack-Request-Id: req-dc940889-9258-4bdf-b80d-d8a6dd466bba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ebd5b2d2-d911-408c-bd46-1776af906b42 +Openstack-Request-Id: req-dc940889-9258-4bdf-b80d-d8a6dd466bba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -42989,479 +43282,413 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/indicators {} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_265_lesse_readers_can_get_indicators ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_265_lesse_readers_can_get_indicators ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_022_nodes_node_ident_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_022_nodes_node_ident_delete_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_284_chassis_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_284_chassis_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_190_volume_volume_target_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_190_volume_volume_target_id_get_admin ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_286_chassis_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_286_chassis_get_member ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_266_third_party_admin_cannot_get_indicators ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_266_third_party_admin_cannot_get_indicators ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_285_chassis_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_285_chassis_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_023_nodes_validate_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_023_nodes_validate_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_267_owner_reader_can_get_indicator_status -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_267_owner_reader_can_get_indicator_status ... skipped 'API appears to be broken and should be patched outside of this work.' -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_191_volume_volume_target_id_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_191_volume_volume_target_id_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_024_nodes_validate_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_024_nodes_validate_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_286_chassis_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_286_chassis_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_268_lessee_reader_not_get_indicator_status -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_268_lessee_reader_not_get_indicator_status ... skipped 'API appears to be broken and should be patched outside of this work.' -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_025_nodes_validate_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_025_nodes_validate_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_192_volume_volume_target_id_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_192_volume_volume_target_id_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_287_chassis_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_287_chassis_detail_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_269_owner_member_can_set_indicator -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_269_owner_member_can_set_indicator ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_026_nodes_maintenance_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_026_nodes_maintenance_put_admin ... ok -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-5a1c1007-2782-4ece-bc3e-09d04af80c75 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/chassis -POST: /v1/chassis {'description': 'test-chassis'} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-31912a4f-dfdf-478e-afb8-c2cb23bb30c4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-31912a4f-dfdf-478e-afb8-c2cb23bb30c4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/chassis -GET: /v1/chassis {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-5c803d75-4910-4463-9859-a125b6ca9363 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-5c803d75-4910-4463-9859-a125b6ca9363 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/chassis -GET: /v1/chassis {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-84e3fcd7-caff-448e-802d-19ef77744765 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-84e3fcd7-caff-448e-802d-19ef77744765 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/chassis -GET: /v1/chassis {} -GOT:Response: 200 OK +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_234_nodes_bios_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_234_nodes_bios_get_member ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_032_nodes_management_boot_device_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_032_nodes_management_boot_device_put_admin ... ok +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8560f688-f384-4da8-b1ae-c10b8093d5c5 +Openstack-Request-Id: req-7945ca6c-cd7f-4085-b351-4eacf6ef0822 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8560f688-f384-4da8-b1ae-c10b8093d5c5 +Openstack-Request-Id: req-7945ca6c-cd7f-4085-b351-4eacf6ef0822 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/chassis/detail -GET: /v1/chassis/detail {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/deploy_templates/5337273d-d4df-4cfc-9ead-4eb0c28ebe63 +DELETE: /v1/deploy_templates/5337273d-d4df-4cfc-9ead-4eb0c28ebe63 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-88f29833-89ed-41d6-a616-693489946831 +Openstack-Request-Id: req-d96dc4f5-4635-4ba3-9aa7-d250fe151c17 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:41.478606+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"}]]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-88f29833-89ed-41d6-a616-693489946831 +Openstack-Request-Id: req-d96dc4f5-4635-4ba3-9aa7-d250fe151c17 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:41.478606+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"}]]}]} -API ACL Testing Path get /v1/chassis/detail -GET: /v1/chassis/detail {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/chassis +POST: /v1/chassis {'description': 'test-chassis'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-2a21a0d0-9d96-4ace-b6d2-958159be3527 +Location: http://localhost/v1/chassis/0956617a-9b27-49be-9fab-7bce49f5df0e +Openstack-Request-Id: req-acda6fb9-44cc-4ec1-b9a0-4f52f255f502 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:41.773833+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"}]]}]} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_288_chassis_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_288_chassis_detail_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_270_lessee_member_cannot_set_indicator -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_270_lessee_member_cannot_set_indicator ... ok +{"uuid": "0956617a-9b27-49be-9fab-7bce49f5df0e", "created_at": "2024-01-06T15:35:58.207892+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/0956617a-9b27-49be-9fab-7bce49f5df0e", "rel": "self"}, {"href": "http://localhost/chassis/0956617a-9b27-49be-9fab-7bce49f5df0e", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/0956617a-9b27-49be-9fab-7bce49f5df0e/nodes", "rel": "self"}, {"href": "http://localhost/chassis/0956617a-9b27-49be-9fab-7bce49f5df0e/nodes", "rel": "bookmark"}]]} ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/targets/bfa1c9b0-eaaf-4546-98cb-c2f5a1a785e1 -Openstack-Request-Id: req-d1cbb117-5c61-4834-85ba-1b875232bdad +Location: http://localhost/v1/chassis/0956617a-9b27-49be-9fab-7bce49f5df0e +Openstack-Request-Id: req-acda6fb9-44cc-4ec1-b9a0-4f52f255f502 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "bfa1c9b0-eaaf-4546-98cb-c2f5a1a785e1", "created_at": "2025-02-07T21:35:39.609236+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/bfa1c9b0-eaaf-4546-98cb-c2f5a1a785e1", "rel": "self"}, {"href": "http://localhost/volume/targets/bfa1c9b0-eaaf-4546-98cb-c2f5a1a785e1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} -API ACL Testing Path post /v1/volume/targets -POST: /v1/volume/targets {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} +{"uuid": "0956617a-9b27-49be-9fab-7bce49f5df0e", "created_at": "2024-01-06T15:35:58.207892+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/0956617a-9b27-49be-9fab-7bce49f5df0e", "rel": "self"}, {"href": "http://localhost/chassis/0956617a-9b27-49be-9fab-7bce49f5df0e", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/0956617a-9b27-49be-9fab-7bce49f5df0e/nodes", "rel": "self"}, {"href": "http://localhost/chassis/0956617a-9b27-49be-9fab-7bce49f5df0e/nodes", "rel": "bookmark"}]]} +API ACL Testing Path post /v1/chassis +POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4b697c5d-c28e-495d-81ea-235c1c558eb4 +Openstack-Request-Id: req-c8cb3945-2879-4c5a-81af-d2a52840251e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4b697c5d-c28e-495d-81ea-235c1c558eb4 +Openstack-Request-Id: req-c8cb3945-2879-4c5a-81af-d2a52840251e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/volume/targets -POST: /v1/volume/targets {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/chassis +POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f381f247-00fe-48eb-9b31-69775b03f487 +Openstack-Request-Id: req-818a4018-6ede-4e9f-9599-66dbb64180a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f381f247-00fe-48eb-9b31-69775b03f487 +Openstack-Request-Id: req-818a4018-6ede-4e9f-9599-66dbb64180a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/chassis +GET: /v1/chassis {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-67e2d71b-3a2b-43b4-8423-62241436a9a4 +Openstack-Request-Id: req-237d8008-8500-41a1-9c00-35b0bcd1f525 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:35:40.623041+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"} +{"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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-67e2d71b-3a2b-43b4-8423-62241436a9a4 +Openstack-Request-Id: req-237d8008-8500-41a1-9c00-35b0bcd1f525 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:35:40.623041+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"} -API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 404 Not Found +{"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"}]}]} +API ACL Testing Path get /v1/chassis +GET: /v1/chassis {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-40b5fe3b-5b60-4ebe-8e04-0bc921ad1d67 +Openstack-Request-Id: req-d5ee86c9-c41a-4984-9d47-b246b4186dcc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-40b5fe3b-5b60-4ebe-8e04-0bc921ad1d67 +Openstack-Request-Id: req-d5ee86c9-c41a-4984-9d47-b246b4186dcc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/chassis +GET: /v1/chassis {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3b3d575f-8320-4050-bae6-120faf480288 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:35:41.459985+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"} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-3b3d575f-8320-4050-bae6-120faf480288 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:35:41.459985+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"} -API ACL Testing Path patch /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-69c2d372-3459-4077-8bf7-0f603465584c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_193_volume_volume_target_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_193_volume_volume_target_id_patch_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_027_nodes_maintenance_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_027_nodes_maintenance_put_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_289_chassis_detail_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_289_chassis_detail_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_271_third_party_admin_cannot_set_indicator -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_271_third_party_admin_cannot_set_indicator ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_194_volume_volume_target_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_194_volume_volume_target_id_patch_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_028_nodes_maintenance_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_028_nodes_maintenance_put_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_290_chassis_chassis_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_290_chassis_chassis_id_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_272_owner_reader_can_list_portgroups -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_272_owner_reader_can_list_portgroups ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_029_nodes_maintenance_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_029_nodes_maintenance_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_195_volume_volume_target_id_patch_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_195_volume_volume_target_id_patch_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_291_chassis_chassis_id_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_291_chassis_chassis_id_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_273_lessee_reader_can_list_portgroups -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_273_lessee_reader_can_list_portgroups ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_030_nodes_maintenance_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_030_nodes_maintenance_delete_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_292_chassis_chassis_id_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_292_chassis_chassis_id_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_196_volume_volume_target_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_196_volume_volume_target_id_delete_admin ... ok -GOT:Response: 503 Service Unavailable -Content-Type: application/json -Openstack-Request-Id: req-ce20017c-eccb-4218-a0c2-247ee52a40ba +Openstack-Request-Id: req-f91e0021-5581-414b-9fca-61de11fa943a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"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"}]}]}ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_287_chassis_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_287_chassis_get_observer ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_267_owner_reader_can_get_indicator_status +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_267_owner_reader_can_get_indicator_status ... skipped 'API appears to be broken and should be patched outside of this work.' +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found ... ok +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ce20017c-eccb-4218-a0c2-247ee52a40ba +Openstack-Request-Id: req-db47ce2b-c694-4060-b102-d5e93629534b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/indicators -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/indicators {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/drivers/fake-driverz/vendor_passthru?method=test +PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ae840948-49f1-4f6e-906f-27212ffffa26 +Openstack-Request-Id: req-ff9f185c-b679-43be-8c5e-22d0ec137417 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ae840948-49f1-4f6e-906f-27212ffffa26 +Openstack-Request-Id: req-ff9f185c-b679-43be-8c5e-22d0ec137417 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/indicators/component/magic_light -PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/indicators/component/magic_light None -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/drivers/fake-driverz/vendor_passthru?method=test +PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d79a8a9b-3ab2-4655-952d-d8c17771eb0e +Openstack-Request-Id: req-c58e0955-6fea-4128-80af-f05071097220 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d79a8a9b-3ab2-4655-952d-d8c17771eb0e +Openstack-Request-Id: req-c58e0955-6fea-4128-80af-f05071097220 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/indicators/component/magic_light -PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/indicators/component/magic_light None +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/drivers/fake-driverz/vendor_passthru?method=test +PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-40b714d0-1a1c-4a1a-98ca-f533e846f69b +Openstack-Request-Id: req-7e57a8a6-4712-45d4-a0a2-883ed958cb2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_indicator_state\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-40b714d0-1a1c-4a1a-98ca-f533e846f69b +Openstack-Request-Id: req-7e57a8a6-4712-45d4-a0a2-883ed958cb2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_indicator_state\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/component/magic_light -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/component/magic_light None +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/drivers/fake-driverz/vendor_passthru?method=test +DELETE: /v1/drivers/fake-driverz/vendor_passthru?method=test GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e4a259a6-789c-4dd1-a261-1436a6ef53db +Openstack-Request-Id: req-4e92c567-84de-462d-a8fd-25b90d8d2333 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e4a259a6-789c-4dd1-a261-1436a6ef53db +Openstack-Request-Id: req-4e92c567-84de-462d-a8fd-25b90d8d2333 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups -GET: /v1/portgroups {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/drivers/fake-driverz/vendor_passthru?method=test +DELETE: /v1/drivers/fake-driverz/vendor_passthru?method=test +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-239460d9-9260-4495-b529-5ec313d26179 +Openstack-Request-Id: req-324de0d9-da86-4e67-b968-950f1a524f5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-239460d9-9260-4495-b529-5ec313d26179 +Openstack-Request-Id: req-324de0d9-da86-4e67-b968-950f1a524f5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/portgroups -GET: /v1/portgroups {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c7016280-4e33-43da-9f41-3bcb8c22bf00 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-c7016280-4e33-43da-9f41-3bcb8c22bf00 +Openstack-Request-Id: req-a54970be-9595-4267-8518-950520f922cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/portgroups -GET: /v1/portgroups {} -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_274_third_party_admin_cannot_list_portgroups -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_274_third_party_admin_cannot_list_portgroups ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_031_nodes_maintenance_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_031_nodes_maintenance_delete_observer ... ok +{"bios": [{"created_at": "2024-01-06T15:35:58.671832+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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2a21a0d0-9d96-4ace-b6d2-958159be3527 +Openstack-Request-Id: req-a54970be-9595-4267-8518-950520f922cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:41.773833+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"}]]}]} -API ACL Testing Path get /v1/chassis/detail -GET: /v1/chassis/detail {} +{"bios": [{"created_at": "2024-01-06T15:35:58.671832+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"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9169abd5-6d33-4dee-8c45-50f17b2c6f2c +Openstack-Request-Id: req-aa3ef7a2-7a6b-4b9c-9a56-7c3e38b8f1fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:42.018187+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"}]]}]} +{"bios": [{"created_at": "2024-01-06T15:35:58.810679+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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9169abd5-6d33-4dee-8c45-50f17b2c6f2c +Openstack-Request-Id: req-aa3ef7a2-7a6b-4b9c-9a56-7c3e38b8f1fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:42.018187+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"}]]}]} -API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:Response: 200 OK +{"bios": [{"created_at": "2024-01-06T15:35:58.810679+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"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_235_nodes_bios_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_235_nodes_bios_get_reader ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_033_nodes_management_boot_device_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_033_nodes_management_boot_device_put_member ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_288_chassis_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_288_chassis_detail_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_236_nodes_bios_bios_setting_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_236_nodes_bios_bios_setting_get_admin ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_268_lessee_reader_not_get_indicator_status +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_268_lessee_reader_not_get_indicator_status ... skipped 'API appears to be broken and should be patched outside of this work.' +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list ... ok +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-832d2fc9-8d5b-4e33-824c-a8fcdc259d5b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:42.384336+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"}]]} -ACL Test GOT Response: 200 OK +Openstack-Request-Id: req-8c72224d-4976-4d73-93af-fdf436b8b018 +{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} +GET: / {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-832d2fc9-8d5b-4e33-824c-a8fcdc259d5b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:42.384336+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"}]]} -API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:Response: 200 OK +Openstack-Request-Id: req-49916e72-de53-4073-aacc-fd8364c96c9e +{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} +GET: / {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-98ff64fc-d32b-4541-826a-f20a61f2ff76 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:42.618565+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"}]]} -ACL Test GOT Response: 200 OK +Openstack-Request-Id: req-b1c4dc5c-0767-4f79-9ac0-8c4ff40c6cfc +{"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}"} +GET: / {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-98ff64fc-d32b-4541-826a-f20a61f2ff76 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:42.618565+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"}]]} -API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +Openstack-Request-Id: req-9f646297-78c3-4cb7-af6c-ecfec43b8e87 +{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-2ab9fffb-2103-41a8-8cd7-38172d6e22e8 +{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-09ca5cd1-8ff6-4d50-87af-d39191c37500 +{"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 \\\"/build/reproducible-path/ironic-21.1.0/ironic/api/method.py\\\", line 42, in callfunction\\n result = f(self, *args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/build/reproducible-path/ironic-21.1.0/ironic/api/controllers/root.py\\\", line 43, in index\\n return root()\\n ^^^^^^\\n\\n File \\\"\\\", line 3, in root\\n\\n File \\\"/usr/lib/python3.11/unittest/mock.py\\\", line 1118, in __call__\\n return self._mock_call(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/usr/lib/python3.11/unittest/mock.py\\\", line 1122, in _mock_call\\n return self._execute_mock_call(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/usr/lib/python3.11/unittest/mock.py\\\", line 1177, 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\"}"} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-7e5d1fe4-787a-4a6c-aec8-c90971ebea1f +{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-0501d1fb-1265-4f3f-bd36-9dc01b11d826 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-a7e8309c-0d12-4e89-b6a8-f9bd714bbcfa +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-09088207-a0cc-4646-a2e3-6deefddf3710 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": \"Traceback (most recent call last):\\n\\n File \\\"/build/reproducible-path/ironic-21.1.0/ironic/api/method.py\\\", line 42, in callfunction\\n result = f(self, *args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/build/reproducible-path/ironic-21.1.0/ironic/api/controllers/root.py\\\", line 43, in index\\n return root()\\n ^^^^^^\\n\\n File \\\"\\\", line 3, in root\\n\\n File \\\"/usr/lib/python3.11/unittest/mock.py\\\", line 1118, in __call__\\n return self._mock_call(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/usr/lib/python3.11/unittest/mock.py\\\", line 1122, in _mock_call\\n return self._execute_mock_call(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/usr/lib/python3.11/unittest/mock.py\\\", line 1177, in _execute_mock_call\\n raise effect\\n\\nException: Error message without traceback \\n but \\n multiline\\n\"}"} +GET: /v1/things/ouch {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-fdf96dad-6f5d-42ed-be30-628200ce722e +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"ouch\", \"debuginfo\": null}"} +GET: /v1/things {'name': 'foo', 'flag': True} +GOT:{'foo': True} +GET: /v1/things {'name': 'foo', 'flag': 'truish'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-666a530a-df0b-4d82-89c2-350380e56b36 +{"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}"} +POST: /v1/things/ {'three': 'three', 'four': 'four', 'five': 'five'} +GOT:Response: 201 Created +Content-Type: application/json +Openstack-Request-Id: req-041252c4-dd82-41da-a944-d82af118b5b9 +{"three": "three", "four": "four", "five": "five"} +POST: /v1/things/ {'three': 'three', 'four': 'fourrrr', 'five': 'five'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-09ef2639-36f4-43f3-80c6-0740bd21e745 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'fourrrr' is too long\", \"debuginfo\": null}"} +GET: /v1/things/no_content {} +GOT:Response: 204 No Content +Openstack-Request-Id: req-64b8bd49-f6bc-477c-a1e2-9300a7c3edf9 + +GET: /v1/things/response_content {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-346d0537-4790-4a33-bef8-b87a2d9a3eef -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:42.747569+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"}]]} -ACL Test GOT Response: 200 OK +Openstack-Request-Id: req-5763bbec-a73d-4e6f-bb7a-5d78f41901f2 +"nothing" +GET: /v1/things/response_custom_status {} +GOT:Response: 202 Accepted Content-Type: application/json -Openstack-Request-Id: req-346d0537-4790-4a33-bef8-b87a2d9a3eef -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:42.747569+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"}]]} -API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_293_chassis_chassis_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_293_chassis_chassis_id_patch_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_197_volume_volume_target_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_197_volume_volume_target_id_delete_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_275_owner_reader_can_read_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_275_owner_reader_can_read_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_032_nodes_management_boot_device_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_032_nodes_management_boot_device_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_198_volume_volume_target_id_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_198_volume_volume_target_id_delete_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_276_lessee_reader_can_read_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_276_lessee_reader_can_read_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_294_chassis_chassis_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_294_chassis_chassis_id_patch_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_033_nodes_management_boot_device_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_033_nodes_management_boot_device_put_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_199_nodes_volume_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_199_nodes_volume_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_277_third_party_admin_cannot_read_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_277_third_party_admin_cannot_read_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_295_chassis_chassis_id_patch_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_295_chassis_chassis_id_patch_reader ... ok +Openstack-Request-Id: req-7d3aa6ac-b009-4cc2-96b3-c42a510680f8 +"accepted" +GET: / {} +GOT:{'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.80'}, 'versions': [{'id': 'v1', 'links': [{'href': 'http://spam.ham/eggs/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}]} +GET: / {} +GOT:{'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.80'}, 'versions': [{'id': 'v1', 'links': [{'href': 'https://mycloud.com/ironic/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}]} +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_289_chassis_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_289_chassis_detail_get_member ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bf61888f-3fbf-46e8-8e42-4199b9818e49 +Openstack-Request-Id: req-04b5255f-6998-45e6-97a5-82df642e8e26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -43470,7 +43697,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e271a8a9-72cd-48b3-a932-a06341f9ba30 +Openstack-Request-Id: req-291e5180-47c5-40cb-ac22-ad6b5cfe68bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -43479,7 +43706,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1de421da-5b66-469e-94f5-0514a1516721 +Openstack-Request-Id: req-c969ccae-e5a0-417d-950a-e547be29c5a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -43488,7 +43715,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6f313466-6d1c-42a9-8e4d-75e4dc6ae748 +Openstack-Request-Id: req-62e26cf3-c142-45a4-809a-43c58af531a1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -43497,7 +43724,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-93829d76-1898-429e-bec4-6de079d9473a +Openstack-Request-Id: req-35f1af62-34b0-4383-8fd0-02ee0d1b9387 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -43506,7 +43733,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4ed7e41b-7c18-43ef-b45f-cff3b87cc5a4 +Openstack-Request-Id: req-9b855d21-b52e-4785-9b5b-99670e499d03 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -43515,7 +43742,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c123127b-1792-4afe-ac4c-f2199c3cebad +Openstack-Request-Id: req-8b4e5d1d-2439-4fa2-a5f8-b6b99011acea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -43524,7 +43751,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1ec150d0-c00b-4d56-89ee-380a740d5db2 +Openstack-Request-Id: req-88ae0738-0fa8-4071-b911-84596bcd4669 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -43533,7 +43760,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8affac8f-4dea-4506-a2b4-f4234a702212 +Openstack-Request-Id: req-264bb304-6753-44ae-b29c-583884b16fdd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -43542,7 +43769,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2bde1513-95c1-498b-bfaf-31a83fa2497a +Openstack-Request-Id: req-53ae2ba4-5873-4460-b9f8-c9d7987d71fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -43551,7 +43778,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c80e83f2-53ce-4391-b08d-63c9d25d86a7 +Openstack-Request-Id: req-e962eff1-ec1b-4f6c-a7fa-78c062fa996a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -43560,7 +43787,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-80a1b054-2f53-4f5f-adef-f97336fbca15 +Openstack-Request-Id: req-26fd4cd9-8c80-474c-917f-f2948bf7ef4f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -43569,7 +43796,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c59d9660-1a68-4666-ba6e-58e2dbda0af8 +Openstack-Request-Id: req-259319b8-4211-4770-a9ab-17619832e368 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -43578,7 +43805,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e6ef4b9c-0c3e-4e3b-a6e7-f655282084e3 +Openstack-Request-Id: req-cfd79e90-d96c-4a90-b902-650cd7765369 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -43587,750 +43814,967 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-37d9d9e4-83d2-4685-8e5b-acab4336fbb8 +Openstack-Request-Id: req-7cc6826e-7124-459c-a907-ac716f8fc92f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_034_nodes_management_boot_device_put_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_034_nodes_management_boot_device_put_observer ... ok -ACL Test GOT Response: 503 Service Unavailable +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_237_nodes_bios_bios_setting_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_237_nodes_bios_bios_setting_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_269_owner_member_can_set_indicator +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_269_owner_member_can_set_indicator ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_290_chassis_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_290_chassis_detail_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_238_nodes_bios_bios_setting_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_238_nodes_bios_bios_setting_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_035_nodes_management_boot_device_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_035_nodes_management_boot_device_get_admin ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_filter_by_project +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_filter_by_project ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_270_lessee_member_cannot_set_indicator +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_270_lessee_member_cannot_set_indicator ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_291_chassis_chassis_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_291_chassis_chassis_id_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_239_conductors_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_239_conductors_get_admin ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_includes_traits +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_includes_traits ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_036_nodes_management_boot_device_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_036_nodes_management_boot_device_get_member ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_no_traits +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_no_traits ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_271_third_party_admin_cannot_set_indicator +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_271_third_party_admin_cannot_set_indicator ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_292_chassis_chassis_id_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_292_chassis_chassis_id_get_member ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_with_traits +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_with_traits ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-69c2d372-3459-4077-8bf7-0f603465584c +Openstack-Request-Id: req-3d33d75f-1ffd-4a8f-b803-279707248dfd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +{"bios": [{"created_at": "2024-01-06T15:35:58.941264+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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2875f4c2-9276-40de-bb8d-d39401f88af4 +Openstack-Request-Id: req-3d33d75f-1ffd-4a8f-b803-279707248dfd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"bios": [{"created_at": "2024-01-06T15:35:58.941264+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"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2875f4c2-9276-40de-bb8d-d39401f88af4 +Openstack-Request-Id: req-430a60a8-4c3d-4f72-a879-28454cc41510 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 403 Forbidden +{"FAKE_SETTING": {"created_at": "2024-01-06T15:35:59.154138+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"}]}} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-40cd26f2-c1bf-4070-85b1-5ce48bcb517b +Openstack-Request-Id: req-430a60a8-4c3d-4f72-a879-28454cc41510 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"FAKE_SETTING": {"created_at": "2024-01-06T15:35:59.154138+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"}]}} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-40cd26f2-c1bf-4070-85b1-5ce48bcb517b +Openstack-Request-Id: req-2de60025-ba23-4635-a1b2-00fcad7021f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 503 Service Unavailable +{"FAKE_SETTING": {"created_at": "2024-01-06T15:35:59.349223+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"}]}} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0ee11c0d-c4b7-4cfe-a40a-01d5c60b4e65 +Openstack-Request-Id: req-2de60025-ba23-4635-a1b2-00fcad7021f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"FAKE_SETTING": {"created_at": "2024-01-06T15:35:59.349223+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"}]}} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0ee11c0d-c4b7-4cfe-a40a-01d5c60b4e65 +Openstack-Request-Id: req-a55c07f5-4a13-4968-9b13-b3ef911c384b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 404 Not Found +{"FAKE_SETTING": {"created_at": "2024-01-06T15:35:59.508204+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"}]}} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e7a71831-f2bf-4408-b502-5e9fe7431825 +Openstack-Request-Id: req-a55c07f5-4a13-4968-9b13-b3ef911c384b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"FAKE_SETTING": {"created_at": "2024-01-06T15:35:59.508204+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"}]}} +API ACL Testing Path get /v1/conductors +GET: /v1/conductors {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e7a71831-f2bf-4408-b502-5e9fe7431825 +Openstack-Request-Id: req-e3cae974-b77c-46e6-8106-5a609d17d2b3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 403 Forbidden +{"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}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-949b767d-7768-42f3-bbc9-8e45346c5992 +Openstack-Request-Id: req-e3cae974-b77c-46e6-8106-5a609d17d2b3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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}]} +API ACL Testing Path get /v1/conductors +GET: /v1/conductors {} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_240_conductors_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_240_conductors_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_037_nodes_management_boot_device_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_037_nodes_management_boot_device_get_observer ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_272_owner_reader_can_list_portgroups +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_272_owner_reader_can_list_portgroups ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level ... ok + +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-949b767d-7768-42f3-bbc9-8e45346c5992 +Openstack-Request-Id: req-f91e0021-5581-414b-9fca-61de11fa943a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} +{"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"}]}]} +API ACL Testing Path get /v1/chassis/detail +GET: /v1/chassis/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-157bf272-85e7-48c5-8c0d-db25f13a979f +Openstack-Request-Id: req-00904a81-15df-4f52-bf44-3141d24465ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:35:59.152152+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"}]]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-157bf272-85e7-48c5-8c0d-db25f13a979f +Openstack-Request-Id: req-00904a81-15df-4f52-bf44-3141d24465ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:35:59.152152+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"}]]}]} +API ACL Testing Path get /v1/chassis/detail +GET: /v1/chassis/detail {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9b61f9e2-6326-4c23-9ef1-22068a9f8b01 +Openstack-Request-Id: req-e9a7ef48-f1b0-4d04-abcd-210008479041 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_200_nodes_volume_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_200_nodes_volume_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_278_owner_admin_can_add_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_278_owner_admin_can_add_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_296_chassis_chassis_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_296_chassis_chassis_id_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_201_nodes_volume_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_201_nodes_volume_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_035_nodes_management_boot_device_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_035_nodes_management_boot_device_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_297_chassis_chassis_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_297_chassis_chassis_id_delete_member ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-e9a7ef48-f1b0-4d04-abcd-210008479041 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/chassis/detail +GET: /v1/chassis/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-45600687-a1fa-4782-a7b5-95776987e322 +Openstack-Request-Id: req-6938cc03-020b-433c-8f6e-21259412b0ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": []} +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:35:59.501804+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"}]]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-45600687-a1fa-4782-a7b5-95776987e322 +Openstack-Request-Id: req-6938cc03-020b-433c-8f6e-21259412b0ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"portgroups": []} -API ACL Testing Path get /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc -GET: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc {} +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:35:59.501804+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"}]]}]} +API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6be2a168-3e0d-4ed8-bfd5-77a010b6cb2b +Openstack-Request-Id: req-f17d3eac-adfb-4ce3-bf43-b1321a03cb50 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "created_at": "2025-02-07T21:35:42.947044+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, "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "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"}]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:35:59.615707+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"}]]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6be2a168-3e0d-4ed8-bfd5-77a010b6cb2b +Openstack-Request-Id: req-f17d3eac-adfb-4ce3-bf43-b1321a03cb50 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "created_at": "2025-02-07T21:35:42.947044+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, "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "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"}]} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:Response: 200 OK +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:35:59.615707+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"}]]} +API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-87e2173e-c883-4e16-aa8e-6fc1aba0ca95 +Openstack-Request-Id: req-74fd1bbf-91a4-43e2-a00b-ea7786c0a01e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:35:43.176139+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-87e2173e-c883-4e16-aa8e-6fc1aba0ca95 +Openstack-Request-Id: req-74fd1bbf-91a4-43e2-a00b-ea7786c0a01e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-02-07T21:35:43.176139+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} -API ACL Testing Path get /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc -GET: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_293_chassis_chassis_id_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_293_chassis_chassis_id_get_observer ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_038_nodes_management_boot_device_supported_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_038_nodes_management_boot_device_supported_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_241_conductors_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_241_conductors_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_294_chassis_chassis_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_294_chassis_chassis_id_patch_admin ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_physical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_physical_disks ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_273_lessee_reader_can_list_portgroups +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_273_lessee_reader_can_list_portgroups ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_242_conductors_hostname_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_242_conductors_hostname_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_039_nodes_management_boot_device_supported_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_039_nodes_management_boot_device_supported_get_member ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_295_chassis_chassis_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_295_chassis_chassis_id_patch_member ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_243_conductors_hostname_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_243_conductors_hostname_get_member ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection ... ok +GOT:Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-b3f4807a-431b-497b-8aa6-2d5db9a3565b +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable +Content-Type: application/json +Openstack-Request-Id: req-b3f4807a-431b-497b-8aa6-2d5db9a3565b +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/indicators +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/indicators {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-05142593-4cc5-4540-886d-c0ba7727c2bb +Openstack-Request-Id: req-1c846098-24df-46e2-b5d3-0dcdf65e454d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-05142593-4cc5-4540-886d-c0ba7727c2bb +Openstack-Request-Id: req-1c846098-24df-46e2-b5d3-0dcdf65e454d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/indicators/component/magic_light +PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/management/indicators/component/magic_light None +GOT:Response: 503 Service Unavailable Content-Type: application/json -Location: http://localhost/v1/portgroups/bd996a62-8cfd-4a34-996d-09c71554a436 -Openstack-Request-Id: req-02af2251-dae7-4d31-90db-d73f3b336940 +Openstack-Request-Id: req-5c230252-c590-44c9-9222-6c688cdb6539 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "bd996a62-8cfd-4a34-996d-09c71554a436", "created_at": "2025-02-07T21:35:43.832148+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/bd996a62-8cfd-4a34-996d-09c71554a436", "rel": "self"}, {"href": "http://localhost/portgroups/bd996a62-8cfd-4a34-996d-09c71554a436", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/bd996a62-8cfd-4a34-996d-09c71554a436/ports", "rel": "self"}, {"href": "http://localhost/portgroups/bd996a62-8cfd-4a34-996d-09c71554a436/ports", "rel": "bookmark"}]} -ACL Test GOT Response: 201 Created +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Location: http://localhost/v1/portgroups/bd996a62-8cfd-4a34-996d-09c71554a436 -Openstack-Request-Id: req-02af2251-dae7-4d31-90db-d73f3b336940 +Openstack-Request-Id: req-5c230252-c590-44c9-9222-6c688cdb6539 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "bd996a62-8cfd-4a34-996d-09c71554a436", "created_at": "2025-02-07T21:35:43.832148+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/bd996a62-8cfd-4a34-996d-09c71554a436", "rel": "self"}, {"href": "http://localhost/portgroups/bd996a62-8cfd-4a34-996d-09c71554a436", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/bd996a62-8cfd-4a34-996d-09c71554a436/ports", "rel": "self"}, {"href": "http://localhost/portgroups/bd996a62-8cfd-4a34-996d-09c71554a436/ports", "rel": "bookmark"}]} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_279_owner_manager_can_add_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_279_owner_manager_can_add_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_036_nodes_management_boot_device_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_036_nodes_management_boot_device_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_298_chassis_chassis_id_delete_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_298_chassis_chassis_id_delete_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_202_nodes_volume_connectors_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_202_nodes_volume_connectors_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_280_owner_member_cannot_add_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_280_owner_member_cannot_add_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_037_nodes_management_boot_device_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_037_nodes_management_boot_device_get_observer ... ok -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/indicators/component/magic_light +PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/management/indicators/component/magic_light None +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-473a9379-d8bd-4dae-8e2a-7c3964481570 +Openstack-Request-Id: req-5d51a849-43d5-4019-9bae-2d6aebe376c4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:42.896866+00:00", "updated_at": "2025-02-07T21:35:42.943734+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"}]]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_indicator_state\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-473a9379-d8bd-4dae-8e2a-7c3964481570 +Openstack-Request-Id: req-5d51a849-43d5-4019-9bae-2d6aebe376c4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:42.896866+00:00", "updated_at": "2025-02-07T21:35:42.943734+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"}]]} -API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_indicator_state\", \"debuginfo\": null}"} +API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/component/magic_light +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/component/magic_light None +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b6f6ba01-29ac-4097-b297-e12c142ec401 +Openstack-Request-Id: req-883b526e-3643-4467-bba1-4061e389fbc3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:43.323713+00:00", "updated_at": "2025-02-07T21:35:43.380751+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"}]]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b6f6ba01-29ac-4097-b297-e12c142ec401 +Openstack-Request-Id: req-883b526e-3643-4467-bba1-4061e389fbc3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:35:43.323713+00:00", "updated_at": "2025-02-07T21:35:43.380751+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"}]]} -API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups +GET: /v1/portgroups {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d13fe65d-77ee-400c-997e-2ef547db238a +Openstack-Request-Id: req-397eeeb3-4527-4474-9348-11401e892550 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d13fe65d-77ee-400c-997e-2ef547db238a +Openstack-Request-Id: req-397eeeb3-4527-4474-9348-11401e892550 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GOT:Response: 204 No Content -Openstack-Request-Id: req-08b5ed08-42d6-4e54-9cdc-35f5bb0ffd4d +{"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"}]}]} +API ACL Testing Path get /v1/portgroups +GET: /v1/portgroups {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-c50cb9b1-a636-456a-89cd-8dff2ffa081a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 - -ACL Test GOT Response: 204 No Content -Openstack-Request-Id: req-08b5ed08-42d6-4e54-9cdc-35f5bb0ffd4d +{"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"}]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-c50cb9b1-a636-456a-89cd-8dff2ffa081a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 - -API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GOT:Response: 403 Forbidden +{"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"}]}]} +API ACL Testing Path get /v1/portgroups +GET: /v1/portgroups {} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_274_third_party_admin_cannot_list_portgroups +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_274_third_party_admin_cannot_list_portgroups ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_040_nodes_management_boot_device_supported_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_040_nodes_management_boot_device_supported_get_observer ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_without_drives_conversion +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_without_drives_conversion ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_conductors_hostname_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_conductors_hostname_get_reader ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_275_owner_reader_can_read_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_275_owner_reader_can_read_portgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_041_nodes_management_inject_nmi_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_041_nodes_management_inject_nmi_put_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_clean +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_clean ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_245_allocations_post_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_245_allocations_post_admin ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_history_get_destroyed_after_destroying_a_node_by_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_history_get_destroyed_after_destroying_a_node_by_uuid ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_deploy +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_deploy ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_296_chassis_chassis_id_patch_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_296_chassis_chassis_id_patch_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_042_nodes_management_inject_nmi_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_042_nodes_management_inject_nmi_put_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_276_lessee_reader_can_read_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_276_lessee_reader_can_read_portgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_246_allocations_post_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_246_allocations_post_member ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_node_provision_state_count +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_node_provision_state_count ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_no_change +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_no_change ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_297_chassis_chassis_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_297_chassis_chassis_id_delete_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_277_third_party_admin_cannot_read_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_277_third_party_admin_cannot_read_portgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_043_nodes_management_inject_nmi_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_043_nodes_management_inject_nmi_put_observer ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_with_mix_realtime_controller_in_ehba_mode +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_with_mix_realtime_controller_in_ehba_mode ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ce2acbcf-5e5c-44b5-a437-aa6a5d86c58c +Openstack-Request-Id: req-51737119-5479-4bc3-a011-c75e21ee9dc7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ce2acbcf-5e5c-44b5-a437-aa6a5d86c58c +Openstack-Request-Id: req-51737119-5479-4bc3-a011-c75e21ee9dc7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GOT:Response: 403 Forbidden +{"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}]} +API ACL Testing Path get /v1/conductors +GET: /v1/conductors {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1877d0c4-5ba9-4039-a9a4-d8b6ceba2fce +Openstack-Request-Id: req-d55b2b08-065c-4a8d-8a79-e31b35a73189 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"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}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1877d0c4-5ba9-4039-a9a4-d8b6ceba2fce +Openstack-Request-Id: req-d55b2b08-065c-4a8d-8a79-e31b35a73189 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +{"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}]} +API ACL Testing Path get /v1/conductors/test-conductor-node +GET: /v1/conductors/test-conductor-node {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0b99060a-e130-48dc-a9b0-dea6597802dd +Openstack-Request-Id: req-1fabe7dc-35de-42fa-9c42-f2095b8530ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "c4687108-b41b-4704-8e5e-203e90f1f541", "created_at": "2025-02-07T21:35:44.498127+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c4687108-b41b-4704-8e5e-203e90f1f541", "rel": "self"}]}]} -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_299_node_history_get_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_299_node_history_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_203_nodes_volume_connectors_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_203_nodes_volume_connectors_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_281_lessee_admin_cannot_add_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_281_lessee_admin_cannot_add_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_300_node_history_get_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_300_node_history_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_038_nodes_management_boot_device_supported_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_038_nodes_management_boot_device_supported_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_204_nodes_volume_connectors_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_204_nodes_volume_connectors_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_282_lessee_manager_cannot_add_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_282_lessee_manager_cannot_add_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_301_node_history_get_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_301_node_history_get_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_039_nodes_management_boot_device_supported_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_039_nodes_management_boot_device_supported_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_205_nodes_volume_targets_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_205_nodes_volume_targets_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_283_lessee_member_cannot_add_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_283_lessee_member_cannot_add_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_040_nodes_management_boot_device_supported_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_040_nodes_management_boot_device_supported_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_302_node_history_get_entry_admin -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_302_node_history_get_entry_admin ... ok -ACL Test GOT Response: 403 Forbidden +{"created_at": "2024-01-06T15:36:00.070899+00:00", "updated_at": "2024-01-06T15:36:00.072122+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} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9b61f9e2-6326-4c23-9ef1-22068a9f8b01 +Openstack-Request-Id: req-1fabe7dc-35de-42fa-9c42-f2095b8530ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} +{"created_at": "2024-01-06T15:36:00.070899+00:00", "updated_at": "2024-01-06T15:36:00.072122+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} +API ACL Testing Path get /v1/conductors/test-conductor-node +GET: /v1/conductors/test-conductor-node {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6123ce1b-cb76-4a40-8e2d-2ba31e58dc3d +Openstack-Request-Id: req-5be5331b-713d-41d3-a743-01bb04f41127 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} +{"created_at": "2024-01-06T15:36:00.171405+00:00", "updated_at": "2024-01-06T15:36:00.172750+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} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6123ce1b-cb76-4a40-8e2d-2ba31e58dc3d +Openstack-Request-Id: req-5be5331b-713d-41d3-a743-01bb04f41127 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} +{"created_at": "2024-01-06T15:36:00.171405+00:00", "updated_at": "2024-01-06T15:36:00.172750+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} +API ACL Testing Path get /v1/conductors/test-conductor-node +GET: /v1/conductors/test-conductor-node {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3a8111fe-b619-4089-9ca3-c7de5096a46a +Openstack-Request-Id: req-b127a086-0d1a-4dae-8fd2-47cbb575fc69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} +{"created_at": "2024-01-06T15:36:00.273518+00:00", "updated_at": "2024-01-06T15:36:00.274841+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} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3a8111fe-b619-4089-9ca3-c7de5096a46a +Openstack-Request-Id: req-b127a086-0d1a-4dae-8fd2-47cbb575fc69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} -GOT:Response: 404 Not Found +{"created_at": "2024-01-06T15:36:00.273518+00:00", "updated_at": "2024-01-06T15:36:00.274841+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} +API ACL Testing Path post /v1/allocations +POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f51938fb-d028-496e-ab55-5e1bf7c1a055 +Openstack-Request-Id: req-bccfba35-80bf-4404-937e-bfba973bbbe8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f51938fb-d028-496e-ab55-5e1bf7c1a055 +Openstack-Request-Id: req-bccfba35-80bf-4404-937e-bfba973bbbe8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/allocations +POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cf04304c-30d6-450f-84af-4df8fe6763da +Openstack-Request-Id: req-4f648deb-a095-49f9-8eeb-17957b56736d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cf04304c-30d6-450f-84af-4df8fe6763da +Openstack-Request-Id: req-4f648deb-a095-49f9-8eeb-17957b56736d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/allocations +POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_247_allocations_post_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_247_allocations_post_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_298_chassis_chassis_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_298_chassis_chassis_id_delete_member ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_248_allocations_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_248_allocations_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_044_nodes_states_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_044_nodes_states_get_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_with_mix_realtime_controller_in_raid_mode +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_with_mix_realtime_controller_in_raid_mode ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_278_owner_admin_can_add_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_278_owner_admin_can_add_portgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_299_chassis_chassis_id_delete_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_299_chassis_chassis_id_delete_observer ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_249_allocations_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_249_allocations_get_member ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9000d3eb-bf08-43a7-bc14-df326f2cc80d +Openstack-Request-Id: req-f388204d-9349-4d69-917d-ed02c91e017f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:35:59.879709+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"}]]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9000d3eb-bf08-43a7-bc14-df326f2cc80d +Openstack-Request-Id: req-f388204d-9349-4d69-917d-ed02c91e017f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_206_nodes_volume_targets_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_206_nodes_volume_targets_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_041_nodes_management_inject_nmi_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_041_nodes_management_inject_nmi_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_284_third_party_admin_cannot_add_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_284_third_party_admin_cannot_add_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_303_node_history_get_entry_member -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_303_node_history_get_entry_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_207_nodes_volume_targets_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_207_nodes_volume_targets_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_042_nodes_management_inject_nmi_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_042_nodes_management_inject_nmi_put_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_304_node_history_get_entry_reader -ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_304_node_history_get_entry_reader ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_285_owner_admin_can_modify_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_285_owner_admin_can_modify_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_208_drivers_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_208_drivers_get_admin ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_043_nodes_management_inject_nmi_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_043_nodes_management_inject_nmi_put_observer ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_209_drivers_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_209_drivers_get_member ... ok -GOT:Response: 201 Created +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:35:59.879709+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"}]]} +API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/portgroups/0b305dac-5bc5-458c-b5bc-4231e33bae5a -Openstack-Request-Id: req-029ffa71-5386-445d-8a8f-6818b312083c +Openstack-Request-Id: req-438adb20-fd40-40cb-a5cb-c4a4e9ee878d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "0b305dac-5bc5-458c-b5bc-4231e33bae5a", "created_at": "2025-02-07T21:35:44.054484+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/0b305dac-5bc5-458c-b5bc-4231e33bae5a", "rel": "self"}, {"href": "http://localhost/portgroups/0b305dac-5bc5-458c-b5bc-4231e33bae5a", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/0b305dac-5bc5-458c-b5bc-4231e33bae5a/ports", "rel": "self"}, {"href": "http://localhost/portgroups/0b305dac-5bc5-458c-b5bc-4231e33bae5a/ports", "rel": "bookmark"}]} -ACL Test GOT Response: 201 Created +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:35:59.983606+00:00", "updated_at": "2024-01-06T15:36:00.030348+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"}]]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/portgroups/0b305dac-5bc5-458c-b5bc-4231e33bae5a -Openstack-Request-Id: req-029ffa71-5386-445d-8a8f-6818b312083c +Openstack-Request-Id: req-438adb20-fd40-40cb-a5cb-c4a4e9ee878d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "0b305dac-5bc5-458c-b5bc-4231e33bae5a", "created_at": "2025-02-07T21:35:44.054484+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/0b305dac-5bc5-458c-b5bc-4231e33bae5a", "rel": "self"}, {"href": "http://localhost/portgroups/0b305dac-5bc5-458c-b5bc-4231e33bae5a", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/0b305dac-5bc5-458c-b5bc-4231e33bae5a/ports", "rel": "self"}, {"href": "http://localhost/portgroups/0b305dac-5bc5-458c-b5bc-4231e33bae5a/ports", "rel": "bookmark"}]} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:35:59.983606+00:00", "updated_at": "2024-01-06T15:36:00.030348+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"}]]} +API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cd2da220-4e6e-4776-b6c8-689051ec0f5d +Openstack-Request-Id: req-3d1331f4-f286-40a9-a56f-41c37ad9bc9b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cd2da220-4e6e-4776-b6c8-689051ec0f5d +Openstack-Request-Id: req-3d1331f4-f286-40a9-a56f-41c37ad9bc9b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0294d239-678c-4113-b011-f5c85d8b53b6 +Openstack-Request-Id: req-4d149a97-9fce-476c-b28f-bd0a214bc3f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0294d239-678c-4113-b011-f5c85d8b53b6 +Openstack-Request-Id: req-4d149a97-9fce-476c-b28f-bd0a214bc3f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-fe336ac6-38f7-4856-942b-37d3ff4f7d40 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GOT:Response: 204 No Content +Openstack-Request-Id: req-51880f6b-6489-4272-95de-56b43824343c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-fe336ac6-38f7-4856-942b-37d3ff4f7d40 + +ACL Test GOT Response: 204 No Content +Openstack-Request-Id: req-51880f6b-6489-4272-95de-56b43824343c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} + +API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b01356c9-1496-400e-a882-1820bbab375a +Openstack-Request-Id: req-fb7486a4-34a6-4014-9ecb-63e9cb1e1f4e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b01356c9-1496-400e-a882-1820bbab375a +Openstack-Request-Id: req-fb7486a4-34a6-4014-9ecb-63e9cb1e1f4e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d877fb4b-05dc-44e8-959d-ad17ecbe0bc3 +Openstack-Request-Id: req-c925fcd4-7bec-439d-b846-15f663300f36 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d877fb4b-05dc-44e8-959d-ad17ecbe0bc3 +Openstack-Request-Id: req-c925fcd4-7bec-439d-b846-15f663300f36 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc -PATCH: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_300_node_history_get_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_300_node_history_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_045_nodes_states_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_045_nodes_states_get_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_clean ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6fba0fb7-5625-45af-ad77-ba17f1fecefa +Openstack-Request-Id: req-4a9bbcdc-1a30-46c5-aa8d-7ca3f81e02ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"portgroups": []} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6fba0fb7-5625-45af-ad77-ba17f1fecefa +Openstack-Request-Id: req-4a9bbcdc-1a30-46c5-aa8d-7ca3f81e02ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc -PATCH: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_286_owner_manager_can_modify_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_286_owner_manager_can_modify_portgroup ... ok +{"portgroups": []} +API ACL Testing Path get /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc +GET: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-70abea80-41a7-4465-866f-dfab097ab881 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "created_at": "2024-01-06T15:36:00.292263+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, "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0b99060a-e130-48dc-a9b0-dea6597802dd +Openstack-Request-Id: req-70abea80-41a7-4465-866f-dfab097ab881 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "c4687108-b41b-4704-8e5e-203e90f1f541", "created_at": "2025-02-07T21:35:44.498127+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c4687108-b41b-4704-8e5e-203e90f1f541", "rel": "self"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "created_at": "2024-01-06T15:36:00.292263+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, "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "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"}]} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-06e49813-3349-40fb-b913-107571a2c4c4 +Openstack-Request-Id: req-3a3447a4-86d9-44a0-add8-e33713609c52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "d52bc846-d3ca-40f8-ae80-86f99bdce593", "created_at": "2025-02-07T21:35:44.662985+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d52bc846-d3ca-40f8-ae80-86f99bdce593", "rel": "self"}]}]} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:36:00.494769+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-06e49813-3349-40fb-b913-107571a2c4c4 +Openstack-Request-Id: req-3a3447a4-86d9-44a0-add8-e33713609c52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "d52bc846-d3ca-40f8-ae80-86f99bdce593", "created_at": "2025-02-07T21:35:44.662985+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d52bc846-d3ca-40f8-ae80-86f99bdce593", "rel": "self"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} -GOT:Response: 200 OK +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:36:00.494769+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} +API ACL Testing Path get /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc +GET: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-95c7f1c5-922e-4afc-8e78-1a269af0bf63 +Openstack-Request-Id: req-b8676efa-ef26-42ef-b4a4-c5681b63f576 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "855b4ce9-4e61-4906-81c2-defe4c1fad32", "created_at": "2025-02-07T21:35:44.904222+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/855b4ce9-4e61-4906-81c2-defe4c1fad32", "rel": "self"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-b8676efa-ef26-42ef-b4a4-c5681b63f576 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/portgroups +POST: /v1/portgroups {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/portgroups/ddbf8de6-16d1-442d-b775-2220a8ed50f1 +Openstack-Request-Id: req-a7593483-2206-49e2-89f9-b2555e9b4763 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "ddbf8de6-16d1-442d-b775-2220a8ed50f1", "created_at": "2024-01-06T15:36:00.821681+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/ddbf8de6-16d1-442d-b775-2220a8ed50f1", "rel": "self"}, {"href": "http://localhost/portgroups/ddbf8de6-16d1-442d-b775-2220a8ed50f1", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/ddbf8de6-16d1-442d-b775-2220a8ed50f1/ports", "rel": "self"}, {"href": "http://localhost/portgroups/ddbf8de6-16d1-442d-b775-2220a8ed50f1/ports", "rel": "bookmark"}]} +ACL Test GOT Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/portgroups/ddbf8de6-16d1-442d-b775-2220a8ed50f1 +Openstack-Request-Id: req-a7593483-2206-49e2-89f9-b2555e9b4763 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "ddbf8de6-16d1-442d-b775-2220a8ed50f1", "created_at": "2024-01-06T15:36:00.821681+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/ddbf8de6-16d1-442d-b775-2220a8ed50f1", "rel": "self"}, {"href": "http://localhost/portgroups/ddbf8de6-16d1-442d-b775-2220a8ed50f1", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/ddbf8de6-16d1-442d-b775-2220a8ed50f1/ports", "rel": "self"}, {"href": "http://localhost/portgroups/ddbf8de6-16d1-442d-b775-2220a8ed50f1/ports", "rel": "bookmark"}]} +API ACL Testing Path post /v1/portgroups +POST: /v1/portgroups {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_279_owner_manager_can_add_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_279_owner_manager_can_add_portgroup ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_250_allocations_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_250_allocations_get_reader ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_not_supported +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_not_supported ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_ok ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_301_node_history_get_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_301_node_history_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_280_owner_member_cannot_add_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_280_owner_member_cannot_add_portgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_046_nodes_states_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_046_nodes_states_get_observer ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_251_allocations_allocation_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_251_allocations_allocation_id_get_admin ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_clean ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_281_lessee_admin_cannot_add_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_281_lessee_admin_cannot_add_portgroup ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found ... ok +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-e22b099d-bbb3-4cd4-aeb0-4052d6ff4c5a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-95c7f1c5-922e-4afc-8e78-1a269af0bf63 +Openstack-Request-Id: req-e22b099d-bbb3-4cd4-aeb0-4052d6ff4c5a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "855b4ce9-4e61-4906-81c2-defe4c1fad32", "created_at": "2025-02-07T21:35:44.904222+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/855b4ce9-4e61-4906-81c2-defe4c1fad32", "rel": "self"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b58fd4e9-ffeb-4313-a1d9-6d94dbf29257 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b58fd4e9-ffeb-4313-a1d9-6d94dbf29257 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/allocations +GET: /v1/allocations {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ff26b6b0-ff99-4bc0-ae14-8e06b55f5504 +Openstack-Request-Id: req-3a9b0423-c75c-4a61-88a7-14247dfaade1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b58fd4e9-ffeb-4313-a1d9-6d94dbf29257", "created_at": "2025-02-07T21:35:45.284852+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/b58fd4e9-ffeb-4313-a1d9-6d94dbf29257", "rel": "self"}]} +{"allocations": [{"uuid": "c285b680-a126-4acb-87fe-83f2029f3873", "created_at": "2024-01-06T15:36:00.741977+00:00", "updated_at": "2024-01-06T15:36:00.751435+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/c285b680-a126-4acb-87fe-83f2029f3873", "rel": "self"}, {"href": "http://localhost/allocations/c285b680-a126-4acb-87fe-83f2029f3873", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ff26b6b0-ff99-4bc0-ae14-8e06b55f5504 +Openstack-Request-Id: req-3a9b0423-c75c-4a61-88a7-14247dfaade1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b58fd4e9-ffeb-4313-a1d9-6d94dbf29257", "created_at": "2025-02-07T21:35:45.284852+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/b58fd4e9-ffeb-4313-a1d9-6d94dbf29257", "rel": "self"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/64706ded-c9d4-4fee-a944-2f66122b1791 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/64706ded-c9d4-4fee-a944-2f66122b1791 {} +{"allocations": [{"uuid": "c285b680-a126-4acb-87fe-83f2029f3873", "created_at": "2024-01-06T15:36:00.741977+00:00", "updated_at": "2024-01-06T15:36:00.751435+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/c285b680-a126-4acb-87fe-83f2029f3873", "rel": "self"}, {"href": "http://localhost/allocations/c285b680-a126-4acb-87fe-83f2029f3873", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +API ACL Testing Path get /v1/allocations +GET: /v1/allocations {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bd293352-4b0b-4836-8071-e923861b8b0d +Openstack-Request-Id: req-abf8beff-b77d-4599-a287-b741fd346918 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "64706ded-c9d4-4fee-a944-2f66122b1791", "created_at": "2025-02-07T21:35:45.568922+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/64706ded-c9d4-4fee-a944-2f66122b1791", "rel": "self"}]} +{"allocations": [{"uuid": "a2ab8e54-6be9-427a-b254-51f0be76b207", "created_at": "2024-01-06T15:36:00.850140+00:00", "updated_at": "2024-01-06T15:36:00.863296+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/a2ab8e54-6be9-427a-b254-51f0be76b207", "rel": "self"}, {"href": "http://localhost/allocations/a2ab8e54-6be9-427a-b254-51f0be76b207", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bd293352-4b0b-4836-8071-e923861b8b0d +Openstack-Request-Id: req-abf8beff-b77d-4599-a287-b741fd346918 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "64706ded-c9d4-4fee-a944-2f66122b1791", "created_at": "2025-02-07T21:35:45.568922+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/64706ded-c9d4-4fee-a944-2f66122b1791", "rel": "self"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/cee35ea8-0c21-4579-b4c2-d02ab854a732 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/cee35ea8-0c21-4579-b4c2-d02ab854a732 {} +{"allocations": [{"uuid": "a2ab8e54-6be9-427a-b254-51f0be76b207", "created_at": "2024-01-06T15:36:00.850140+00:00", "updated_at": "2024-01-06T15:36:00.863296+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/a2ab8e54-6be9-427a-b254-51f0be76b207", "rel": "self"}, {"href": "http://localhost/allocations/a2ab8e54-6be9-427a-b254-51f0be76b207", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +API ACL Testing Path get /v1/allocations +GET: /v1/allocations {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-621a9fcd-4cd3-4fe9-8117-b564616629e1 +Openstack-Request-Id: req-debbbf39-cef7-4ed8-8430-23da719d4514 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "cee35ea8-0c21-4579-b4c2-d02ab854a732", "created_at": "2025-02-07T21:35:45.827845+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/cee35ea8-0c21-4579-b4c2-d02ab854a732", "rel": "self"}]} +{"allocations": [{"uuid": "92815056-50a4-4ead-aaf6-445b45e63d54", "created_at": "2024-01-06T15:36:00.996984+00:00", "updated_at": "2024-01-06T15:36:01.006195+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/92815056-50a4-4ead-aaf6-445b45e63d54", "rel": "self"}, {"href": "http://localhost/allocations/92815056-50a4-4ead-aaf6-445b45e63d54", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-621a9fcd-4cd3-4fe9-8117-b564616629e1 +Openstack-Request-Id: req-debbbf39-cef7-4ed8-8430-23da719d4514 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "cee35ea8-0c21-4579-b4c2-d02ab854a732", "created_at": "2025-02-07T21:35:45.827845+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/cee35ea8-0c21-4579-b4c2-d02ab854a732", "rel": "self"}]} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-bb71045c-69d7-44da-9dad-556e1947afca -{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -GET: / {} -GOT:Response: 400 Bad Request +{"allocations": [{"uuid": "92815056-50a4-4ead-aaf6-445b45e63d54", "created_at": "2024-01-06T15:36:00.996984+00:00", "updated_at": "2024-01-06T15:36:01.006195+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/92815056-50a4-4ead-aaf6-445b45e63d54", "rel": "self"}, {"href": "http://localhost/allocations/92815056-50a4-4ead-aaf6-445b45e63d54", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} +API ACL Testing Path get /v1/allocations/ce327610-eacb-4ed8-b144-59b3a01feb42 +GET: /v1/allocations/ce327610-eacb-4ed8-b144-59b3a01feb42 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-252dc746-109a-4a3a-80a6-a000fec3cb17 -{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -GET: / {} -GOT:Response: 400 Bad Request +Openstack-Request-Id: req-a321f061-9326-41f5-a797-313ca48e2611 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "ce327610-eacb-4ed8-b144-59b3a01feb42", "created_at": "2024-01-06T15:36:01.316349+00:00", "updated_at": "2024-01-06T15:36:01.355007+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/ce327610-eacb-4ed8-b144-59b3a01feb42", "rel": "self"}, {"href": "http://localhost/allocations/ce327610-eacb-4ed8-b144-59b3a01feb42", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-32c320ba-05a0-43ea-a25c-764674c57c81 -{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_044_nodes_states_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_044_nodes_states_get_admin ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_210_drivers_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_210_drivers_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_287_owner_member_cannot_modify_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_287_owner_member_cannot_modify_portgroup ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_045_nodes_states_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_045_nodes_states_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_288_lessee_admin_cannot_modify_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_288_lessee_admin_cannot_modify_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_211_drivers_driver_name_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_211_drivers_driver_name_get_admin ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_289_lessee_manager_cannot_modify_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_289_lessee_manager_cannot_modify_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_046_nodes_states_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_046_nodes_states_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_212_drivers_driver_name_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_212_drivers_driver_name_get_member ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_290_lessee_member_cannot_modify_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_290_lessee_member_cannot_modify_portgroup ... ok +Openstack-Request-Id: req-a321f061-9326-41f5-a797-313ca48e2611 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "ce327610-eacb-4ed8-b144-59b3a01feb42", "created_at": "2024-01-06T15:36:01.316349+00:00", "updated_at": "2024-01-06T15:36:01.355007+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/ce327610-eacb-4ed8-b144-59b3a01feb42", "rel": "self"}, {"href": "http://localhost/allocations/ce327610-eacb-4ed8-b144-59b3a01feb42", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path get /v1/allocations/df1d567e-d18f-4ae1-a1cc-9823d4434743 +GET: /v1/allocations/df1d567e-d18f-4ae1-a1cc-9823d4434743 {} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_252_allocations_allocation_id_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_252_allocations_allocation_id_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_047_nodes_states_power_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_047_nodes_states_power_put_admin ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_213_drivers_driver_name_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_213_drivers_driver_name_get_observer ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_214_drivers_properties_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_214_drivers_properties_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_291_third_party_admin_cannot_modify_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_291_third_party_admin_cannot_modify_portgroup ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_deploy ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_302_node_history_get_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_302_node_history_get_observer ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__change_physical_disk_mode +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__change_physical_disk_mode ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_with_config_job +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_with_config_job ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_253_allocations_allocation_id_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_253_allocations_allocation_id_get_reader ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_without_config_job +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_without_config_job ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_clean ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_282_lessee_manager_cannot_add_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_282_lessee_manager_cannot_add_portgroup ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_303_node_history_get_entry_admin +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_303_node_history_get_entry_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config ... ok API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7d72fe75-29f3-45be-9857-a0d92ad55bf1 +Openstack-Request-Id: req-5551f5d8-63fe-4559-8e60-96cd7c093cb9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -44339,7 +44783,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c45769d8-701d-4f82-8f17-e306472ef833 +Openstack-Request-Id: req-2a182220-9a58-484f-9534-9496520fe99b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -44348,7 +44792,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6083c77a-60b4-4f86-b413-ff0ec26fb3bd +Openstack-Request-Id: req-2c44dd87-019d-48a8-908e-539a605734dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -44357,7 +44801,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ad6fdf1a-ef8b-4cd9-b4e3-10ebec29ec4a +Openstack-Request-Id: req-310b9e9e-3366-49a7-be9a-dbf4e336e415 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -44366,7 +44810,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-75333c06-7e8e-42a2-adec-c804ff26f7d6 +Openstack-Request-Id: req-e00ea461-2c21-4b73-be1b-04d9baba31a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -44375,7 +44819,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d243661d-998d-4e65-876b-fe74044e06b1 +Openstack-Request-Id: req-1ad8a167-0f64-4cf0-93ed-5bb6ec15fdbc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -44384,7 +44828,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1881b888-b35f-4ec6-b75b-6095f6d62447 +Openstack-Request-Id: req-839c3a4e-4b71-4c21-aa9b-9a046ccadd54 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -44393,7 +44837,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-230e1cdc-c5be-4073-90e1-ab12fcb33e2e +Openstack-Request-Id: req-195a84d9-515f-45a9-b074-e19ccbbeb60c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -44402,7 +44846,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1d7eed67-0d8b-450c-98ab-424fb66bdece +Openstack-Request-Id: req-8c07207d-1c33-4ef6-ada9-57e43402db98 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -44411,7 +44855,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-417ff821-c5ba-4895-9e83-8b2f4d9f9c84 +Openstack-Request-Id: req-a7578e92-3d9a-46e0-9c2b-1cc1b72d75eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -44420,7 +44864,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e6313310-8220-426f-8851-a202a9996920 +Openstack-Request-Id: req-bcab0556-f6ed-440c-a549-dd306700c37e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -44429,7 +44873,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-36cf4e16-3b7f-40bb-a869-e902a97da872 +Openstack-Request-Id: req-1961f6ff-5fd0-4ea0-b35d-b67137fd3044 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -44438,7 +44882,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-80208cb0-19f6-4c23-b0ae-ee6ce2ecfc1e +Openstack-Request-Id: req-fd0639ba-1a98-4401-a7f7-92307419c223 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -44447,715 +44891,746 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c14bca55-fdb7-4396-a640-78e8c950e333 +Openstack-Request-Id: req-b6a39a6c-e1f9-48cd-8208-fe729d1448fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_deploy ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config_fail +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config_fail ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_048_nodes_states_power_put_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_048_nodes_states_power_put_member ... ok -Error while running foo: bar. -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_292_owner_admin_can_delete_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_292_owner_admin_can_delete_portgroup ... ok -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-d650d275-6e2f-46ae-bd13-f06a15a0b399 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-d650d275-6e2f-46ae-bd13-f06a15a0b399 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_254_allocations_allocation_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_254_allocations_allocation_id_patch_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_283_lessee_member_cannot_add_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_283_lessee_member_cannot_add_portgroup ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_clean ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_304_node_history_get_entry_member +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_304_node_history_get_entry_member ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_change_physical_disk_state +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_change_physical_disk_state ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_049_nodes_states_power_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_049_nodes_states_power_put_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_255_allocations_allocation_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_255_allocations_allocation_id_patch_member ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_deploy ... ok +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_305_node_history_get_entry_observer +ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_305_node_history_get_entry_observer ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config_fail +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_284_third_party_admin_cannot_add_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_284_third_party_admin_cannot_add_portgroup ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_050_nodes_states_boot_mode_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_050_nodes_states_boot_mode_put_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_clean ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_fail +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_deploy ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_051_nodes_states_boot_mode_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_051_nodes_states_boot_mode_put_member ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_realtime +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_realtime ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_285_owner_admin_can_modify_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_285_owner_admin_can_modify_portgroup ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_clean ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_256_allocations_allocation_id_patch_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_256_allocations_allocation_id_patch_reader ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_reboot +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_reboot ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_deploy ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5de961ff-8fbf-4d35-8039-0a3ef985a332 +Openstack-Request-Id: req-b1a7eb05-549f-4584-acc9-36b594974162 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} +{"uuid": "df1d567e-d18f-4ae1-a1cc-9823d4434743", "created_at": "2024-01-06T15:36:01.959988+00:00", "updated_at": "2024-01-06T15:36:01.995546+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/df1d567e-d18f-4ae1-a1cc-9823d4434743", "rel": "self"}, {"href": "http://localhost/allocations/df1d567e-d18f-4ae1-a1cc-9823d4434743", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5de961ff-8fbf-4d35-8039-0a3ef985a332 +Openstack-Request-Id: req-b1a7eb05-549f-4584-acc9-36b594974162 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/drivers -GET: /v1/drivers {} +{"uuid": "df1d567e-d18f-4ae1-a1cc-9823d4434743", "created_at": "2024-01-06T15:36:01.959988+00:00", "updated_at": "2024-01-06T15:36:01.995546+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/df1d567e-d18f-4ae1-a1cc-9823d4434743", "rel": "self"}, {"href": "http://localhost/allocations/df1d567e-d18f-4ae1-a1cc-9823d4434743", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path get /v1/allocations/f6fa4d31-5259-4859-82ab-e244ae9dfc05 +GET: /v1/allocations/f6fa4d31-5259-4859-82ab-e244ae9dfc05 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-adbb098b-389a-4e87-bfa5-63b4443842aa +Openstack-Request-Id: req-8fdf25be-a7b2-4287-8b77-fe9558efd27f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"drivers": []} +{"uuid": "f6fa4d31-5259-4859-82ab-e244ae9dfc05", "created_at": "2024-01-06T15:36:02.366651+00:00", "updated_at": "2024-01-06T15:36:02.393634+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/f6fa4d31-5259-4859-82ab-e244ae9dfc05", "rel": "self"}, {"href": "http://localhost/allocations/f6fa4d31-5259-4859-82ab-e244ae9dfc05", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-adbb098b-389a-4e87-bfa5-63b4443842aa -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"drivers": []} -API ACL Testing Path get /v1/drivers -GET: /v1/drivers {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-65efd86d-ee4b-41a3-818c-c4217d06678d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-65efd86d-ee4b-41a3-818c-c4217d06678d +Openstack-Request-Id: req-8fdf25be-a7b2-4287-8b77-fe9558efd27f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers -GET: /v1/drivers {} +{"uuid": "f6fa4d31-5259-4859-82ab-e244ae9dfc05", "created_at": "2024-01-06T15:36:02.366651+00:00", "updated_at": "2024-01-06T15:36:02.393634+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/f6fa4d31-5259-4859-82ab-e244ae9dfc05", "rel": "self"}, {"href": "http://localhost/allocations/f6fa4d31-5259-4859-82ab-e244ae9dfc05", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path patch /v1/allocations/053c9e51-0c27-4dae-9577-09b65466f253 +PATCH: /v1/allocations/053c9e51-0c27-4dae-9577-09b65466f253 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-78848085-b903-45b1-bded-74cfded7f128 +Openstack-Request-Id: req-427f4674-bb59-475e-b6cc-6b1738012fcc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"drivers": []} +{"uuid": "053c9e51-0c27-4dae-9577-09b65466f253", "created_at": "2024-01-06T15:36:02.780670+00:00", "updated_at": "2024-01-06T15:36:03.002587+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/053c9e51-0c27-4dae-9577-09b65466f253", "rel": "self"}, {"href": "http://localhost/allocations/053c9e51-0c27-4dae-9577-09b65466f253", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-78848085-b903-45b1-bded-74cfded7f128 +Openstack-Request-Id: req-427f4674-bb59-475e-b6cc-6b1738012fcc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"drivers": []} -API ACL Testing Path get /v1/drivers/fake-driverz -GET: /v1/drivers/fake-driverz {} -GOT:Response: 404 Not Found +{"uuid": "053c9e51-0c27-4dae-9577-09b65466f253", "created_at": "2024-01-06T15:36:02.780670+00:00", "updated_at": "2024-01-06T15:36:03.002587+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/053c9e51-0c27-4dae-9577-09b65466f253", "rel": "self"}, {"href": "http://localhost/allocations/053c9e51-0c27-4dae-9577-09b65466f253", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path patch /v1/allocations/8f711858-b78c-43c3-a337-b311eb7dc252 +PATCH: /v1/allocations/8f711858-b78c-43c3-a337-b311eb7dc252 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-73e72092-17f2-4415-8603-a4da822746ee +Openstack-Request-Id: req-f3753ff1-6ae3-4457-a22a-10f087ddd04e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"uuid": "8f711858-b78c-43c3-a337-b311eb7dc252", "created_at": "2024-01-06T15:36:03.376372+00:00", "updated_at": "2024-01-06T15:36:03.500831+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/8f711858-b78c-43c3-a337-b311eb7dc252", "rel": "self"}, {"href": "http://localhost/allocations/8f711858-b78c-43c3-a337-b311eb7dc252", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-73e72092-17f2-4415-8603-a4da822746ee +Openstack-Request-Id: req-f3753ff1-6ae3-4457-a22a-10f087ddd04e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz -GET: /v1/drivers/fake-driverz {} +{"uuid": "8f711858-b78c-43c3-a337-b311eb7dc252", "created_at": "2024-01-06T15:36:03.376372+00:00", "updated_at": "2024-01-06T15:36:03.500831+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/8f711858-b78c-43c3-a337-b311eb7dc252", "rel": "self"}, {"href": "http://localhost/allocations/8f711858-b78c-43c3-a337-b311eb7dc252", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path patch /v1/allocations/e87941d5-2ec7-4709-9094-97eaee11b65c +PATCH: /v1/allocations/e87941d5-2ec7-4709-9094-97eaee11b65c [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-14d176c3-094a-4a92-aa77-b9793a79c57d +Openstack-Request-Id: req-159d506c-fec5-44f6-bf47-3a0583cde2eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-14d176c3-094a-4a92-aa77-b9793a79c57d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz -GET: /v1/drivers/fake-driverz {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-dd6163bc-67f6-40bb-a57c-e5d53aa8d866 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-dd6163bc-67f6-40bb-a57c-e5d53aa8d866 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/properties -GET: /v1/drivers/fake-driverz/properties {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-14774151-513d-4bd4-a78f-a01212585b5d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-14774151-513d-4bd4-a78f-a01212585b5d +Openstack-Request-Id: req-159d506c-fec5-44f6-bf47-3a0583cde2eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/properties -GET: /v1/drivers/fake-driverz/properties {} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_215_drivers_properties_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_215_drivers_properties_get_member ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_049_nodes_states_power_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_049_nodes_states_power_put_observer ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_216_drivers_properties_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_216_drivers_properties_get_observer ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_293_owner_manager_can_delete_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_293_owner_manager_can_delete_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_050_nodes_states_boot_mode_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_050_nodes_states_boot_mode_put_admin ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 ... ok -"max-count" must be a positive value. -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_fail +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_052_nodes_states_boot_mode_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_052_nodes_states_boot_mode_put_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license ... ok +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-625daac7-d24a-40fc-b132-697ca9ae2106 +Location: http://localhost/v1/portgroups/97c474a5-32f4-49bf-886d-4599734743f1 +Openstack-Request-Id: req-afe32985-5bf1-4c63-95b3-593e4d2de64f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"uuid": "97c474a5-32f4-49bf-886d-4599734743f1", "created_at": "2024-01-06T15:36:01.008584+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/97c474a5-32f4-49bf-886d-4599734743f1", "rel": "self"}, {"href": "http://localhost/portgroups/97c474a5-32f4-49bf-886d-4599734743f1", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/97c474a5-32f4-49bf-886d-4599734743f1/ports", "rel": "self"}, {"href": "http://localhost/portgroups/97c474a5-32f4-49bf-886d-4599734743f1/ports", "rel": "bookmark"}]} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-625daac7-d24a-40fc-b132-697ca9ae2106 +Location: http://localhost/v1/portgroups/97c474a5-32f4-49bf-886d-4599734743f1 +Openstack-Request-Id: req-afe32985-5bf1-4c63-95b3-593e4d2de64f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc -PATCH: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"uuid": "97c474a5-32f4-49bf-886d-4599734743f1", "created_at": "2024-01-06T15:36:01.008584+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": null, "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/97c474a5-32f4-49bf-886d-4599734743f1", "rel": "self"}, {"href": "http://localhost/portgroups/97c474a5-32f4-49bf-886d-4599734743f1", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/97c474a5-32f4-49bf-886d-4599734743f1/ports", "rel": "self"}, {"href": "http://localhost/portgroups/97c474a5-32f4-49bf-886d-4599734743f1/ports", "rel": "bookmark"}]} +API ACL Testing Path post /v1/portgroups +POST: /v1/portgroups {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-246dd850-4d97-4205-ac7b-164989a42444 +Openstack-Request-Id: req-6adb8929-dc1c-4dff-a628-ad5b23694cf5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-246dd850-4d97-4205-ac7b-164989a42444 +Openstack-Request-Id: req-6adb8929-dc1c-4dff-a628-ad5b23694cf5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/portgroups +POST: /v1/portgroups {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8e8f2a02-e1f1-4c9d-95e3-b6f092ddf9bb +Openstack-Request-Id: req-6a24051c-05b6-4dbf-9157-638f3ce3c420 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8e8f2a02-e1f1-4c9d-95e3-b6f092ddf9bb +Openstack-Request-Id: req-6a24051c-05b6-4dbf-9157-638f3ce3c420 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/portgroups +POST: /v1/portgroups {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cf8a9a91-1fec-4099-b2c1-c0dc2ac35925 +Openstack-Request-Id: req-15a11a04-7dca-4c3c-8c42-97404b791a69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cf8a9a91-1fec-4099-b2c1-c0dc2ac35925 +Openstack-Request-Id: req-15a11a04-7dca-4c3c-8c42-97404b791a69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/portgroups +POST: /v1/portgroups {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-63f0389b-a0d8-4776-b272-70467e1a9b99 +Openstack-Request-Id: req-185e1b45-7bcf-4471-b912-980651f52412 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-63f0389b-a0d8-4776-b272-70467e1a9b99 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-89d58f26-9abc-4261-8dc3-3434a16db7db +Openstack-Request-Id: req-185e1b45-7bcf-4471-b912-980651f52412 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-89d58f26-9abc-4261-8dc3-3434a16db7db -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc -DELETE: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/portgroups +POST: /v1/portgroups {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c21f3202-a9ef-4845-936c-714ff4176e58 +Openstack-Request-Id: req-eee8ef25-d5cd-4f82-9771-801362c6840f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c21f3202-a9ef-4845-936c-714ff4176e58 +Openstack-Request-Id: req-eee8ef25-d5cd-4f82-9771-801362c6840f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc -DELETE: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc +PATCH: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-55152f43-7f0c-4f91-8a7e-a58c406c7dd6 +Openstack-Request-Id: req-1afc849e-11c0-4d4a-be2d-a99c399db74b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-55152f43-7f0c-4f91-8a7e-a58c406c7dd6 +Openstack-Request-Id: req-1afc849e-11c0-4d4a-be2d-a99c399db74b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc -DELETE: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_217_drivers_raid_logical_disk_properties_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_217_drivers_raid_logical_disk_properties_get_admin ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_294_owner_member_cannot_delete_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_294_owner_member_cannot_delete_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_051_nodes_states_boot_mode_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_051_nodes_states_boot_mode_put_member ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_295_lessee_admin_cannot_delete_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_295_lessee_admin_cannot_delete_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_member ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions ... ok +API ACL Testing Path patch /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc +PATCH: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_286_owner_manager_can_modify_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_286_owner_manager_can_modify_portgroup ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_with_optional_attrs +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_with_optional_attrs ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_257_allocations_allocation_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_257_allocations_allocation_id_delete_admin ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_053_nodes_states_secure_boot_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_053_nodes_states_secure_boot_put_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_287_owner_member_cannot_modify_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_287_owner_member_cannot_modify_portgroup ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_list_raid_settings +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_list_raid_settings ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_set_raid_settings +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_set_raid_settings ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_258_allocations_allocation_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_258_allocations_allocation_id_delete_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_fileurl +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_fileurl ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_054_nodes_states_secure_boot_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_054_nodes_states_secure_boot_put_member ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_288_lessee_admin_cannot_modify_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_288_lessee_admin_cannot_modify_portgroup ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_052_nodes_states_boot_mode_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_052_nodes_states_boot_mode_put_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_httpurl +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_httpurl ... ok +ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version +ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_296_lessee_manager_cannot_delete_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_296_lessee_manager_cannot_delete_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_observer ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_053_nodes_states_secure_boot_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_053_nodes_states_secure_boot_put_admin ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_259_allocations_allocation_id_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_259_allocations_allocation_id_delete_reader ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_url_exception +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_url_exception ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_055_nodes_states_secure_boot_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_055_nodes_states_secure_boot_put_observer ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_289_lessee_manager_cannot_modify_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_289_lessee_manager_cannot_modify_portgroup ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_260_nodes_allocation_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_260_nodes_allocation_get_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_056_nodes_states_provision_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_056_nodes_states_provision_put_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios ... ok +ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions +ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_290_lessee_member_cannot_modify_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_290_lessee_member_cannot_modify_portgroup ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix_invalid +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix_invalid ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot ... ok +ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions_bad +ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions_bad ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys ... ok +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_device +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_device ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk ... ok +ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported +ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_261_nodes_allocation_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_261_nodes_allocation_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_057_nodes_states_provision_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_057_nodes_states_provision_put_member ... ok +ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported +ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported ... ok +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_mode +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_mode ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_291_third_party_admin_cannot_modify_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_291_third_party_admin_cannot_modify_portgroup ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image ... ok +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_properties ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_automatic_retry ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_automatic_retry ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_297_lessee_member_cannot_delete_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_297_lessee_member_cannot_delete_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_220_drivers_vendor_passthru_methods_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_220_drivers_vendor_passthru_methods_get_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_flash_firmware_sum_mode_with_component +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_flash_firmware_sum_mode_with_component ... ok +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_sensors_data +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_sensors_data ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_262_nodes_allocation_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_262_nodes_allocation_get_reader ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_058_nodes_states_provision_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_058_nodes_states_provision_put_observer ... ok +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_devices +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_298_third_party_admin_cannot_delete_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_298_third_party_admin_cannot_delete_portgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_292_owner_admin_can_delete_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_292_owner_admin_can_delete_portgroup ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot ... ok +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_observer ... ok +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_054_nodes_states_secure_boot_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_054_nodes_states_secure_boot_put_member ... ok -ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached -ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached ... ok -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_223_drivers_vendor_passthru_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_223_drivers_vendor_passthru_get_admin ... ok -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_055_nodes_states_secure_boot_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_055_nodes_states_secure_boot_put_observer ... ok -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url ... ok -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_299_owner_reader_can_get_node_portgroups -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_299_owner_reader_can_get_node_portgroups ... ok -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_056_nodes_states_provision_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_056_nodes_states_provision_put_admin ... ok -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-98339a1e-e7fc-4327-b91d-06a57cd6a36d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_properties\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-98339a1e-e7fc-4327-b91d-06a57cd6a36d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_properties\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/properties -GET: /v1/drivers/fake-driverz/properties {} -GOT:Response: 404 Not Found +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_059_nodes_states_raid_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_059_nodes_states_raid_put_admin ... ok +API ACL Testing Path delete /v1/allocations/5ff8136c-2df1-4804-b2c3-c2497731588c +DELETE: /v1/allocations/5ff8136c-2df1-4804-b2c3-c2497731588c +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-bbdbea6c-f02f-4d93-bb2a-8e5be932ce7b +Openstack-Request-Id: req-eb2e6d85-80bc-4811-b8c3-f35272749a1a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-bbdbea6c-f02f-4d93-bb2a-8e5be932ce7b +Openstack-Request-Id: req-eb2e6d85-80bc-4811-b8c3-f35272749a1a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties -GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/7d5c2e88-f136-476c-9a86-5078f270255b +DELETE: /v1/allocations/7d5c2e88-f136-476c-9a86-5078f270255b +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-96f91882-edd3-43a1-ab7d-4d05f0582cae +Openstack-Request-Id: req-b6aa2090-1aa1-4eec-9455-911197c33230 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-96f91882-edd3-43a1-ab7d-4d05f0582cae +Openstack-Request-Id: req-b6aa2090-1aa1-4eec-9455-911197c33230 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties -GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/c11b6937-46ce-408e-b77b-a0bb1b416ddc +DELETE: /v1/allocations/c11b6937-46ce-408e-b77b-a0bb1b416ddc GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-78a7ee4e-c02c-4a96-906b-d8867550eceb +Openstack-Request-Id: req-f1fc895a-78f0-43fb-8f7d-375a4d1dc9f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_raid_logical_disk_properties\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-78a7ee4e-c02c-4a96-906b-d8867550eceb -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_raid_logical_disk_properties\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties -GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-f75a5cf4-e6c3-4279-b940-784689c0aa9a +Openstack-Request-Id: req-f1fc895a-78f0-43fb-8f7d-375a4d1dc9f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-f75a5cf4-e6c3-4279-b940-784689c0aa9a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods -GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4a469dfe-19bb-4498-a41f-7a701d3a2643 +Openstack-Request-Id: req-d3ab2fbc-71a7-467e-9e8f-f6d1a6722858 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"uuid": "d24578bb-e177-4c3b-bc86-02871fa979c0", "created_at": "2024-01-06T15:36:05.345481+00:00", "updated_at": "2024-01-06T15:36:05.358440+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/d24578bb-e177-4c3b-bc86-02871fa979c0", "rel": "self"}, {"href": "http://localhost/allocations/d24578bb-e177-4c3b-bc86-02871fa979c0", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4a469dfe-19bb-4498-a41f-7a701d3a2643 +Openstack-Request-Id: req-d3ab2fbc-71a7-467e-9e8f-f6d1a6722858 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods -GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} -GOT:Response: 403 Forbidden +{"uuid": "d24578bb-e177-4c3b-bc86-02871fa979c0", "created_at": "2024-01-06T15:36:05.345481+00:00", "updated_at": "2024-01-06T15:36:05.358440+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/d24578bb-e177-4c3b-bc86-02871fa979c0", "rel": "self"}, {"href": "http://localhost/allocations/d24578bb-e177-4c3b-bc86-02871fa979c0", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-825f26c2-b9c6-4a13-9fff-e7c9d6a740ff +Openstack-Request-Id: req-d5337290-27d5-4a35-91bb-99388ec21f1b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "251a911f-2a5d-4f2f-a06a-dc2909bd4dea", "created_at": "2024-01-06T15:36:05.501995+00:00", "updated_at": "2024-01-06T15:36:05.516090+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/251a911f-2a5d-4f2f-a06a-dc2909bd4dea", "rel": "self"}, {"href": "http://localhost/allocations/251a911f-2a5d-4f2f-a06a-dc2909bd4dea", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-825f26c2-b9c6-4a13-9fff-e7c9d6a740ff +Openstack-Request-Id: req-d5337290-27d5-4a35-91bb-99388ec21f1b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods -GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} -GOT:Response: 403 Forbidden +{"uuid": "251a911f-2a5d-4f2f-a06a-dc2909bd4dea", "created_at": "2024-01-06T15:36:05.501995+00:00", "updated_at": "2024-01-06T15:36:05.516090+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/251a911f-2a5d-4f2f-a06a-dc2909bd4dea", "rel": "self"}, {"href": "http://localhost/allocations/251a911f-2a5d-4f2f-a06a-dc2909bd4dea", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-11017f0d-e19e-444f-bb74-78ea806849da +Openstack-Request-Id: req-f5fa1ae1-d773-4ad9-9033-869461159448 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "36618044-56eb-4d6c-9f4b-cc12ec48a8f1", "created_at": "2024-01-06T15:36:05.641228+00:00", "updated_at": "2024-01-06T15:36:05.654541+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/36618044-56eb-4d6c-9f4b-cc12ec48a8f1", "rel": "self"}, {"href": "http://localhost/allocations/36618044-56eb-4d6c-9f4b-cc12ec48a8f1", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-11017f0d-e19e-444f-bb74-78ea806849da +Openstack-Request-Id: req-f5fa1ae1-d773-4ad9-9033-869461159448 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test -GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} -GOT:Response: 404 Not Found +{"uuid": "36618044-56eb-4d6c-9f4b-cc12ec48a8f1", "created_at": "2024-01-06T15:36:05.641228+00:00", "updated_at": "2024-01-06T15:36:05.654541+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/36618044-56eb-4d6c-9f4b-cc12ec48a8f1", "rel": "self"}, {"href": "http://localhost/allocations/36618044-56eb-4d6c-9f4b-cc12ec48a8f1", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_263_nodes_allocation_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_263_nodes_allocation_delete_admin ... ok +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi_fail +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi_fail ... ok +ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached +ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_293_owner_manager_can_delete_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_293_owner_manager_can_delete_portgroup ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot ... ok +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port ... ok +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device ... ok +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_264_nodes_allocation_delete_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_264_nodes_allocation_delete_member ... ok +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure ... ok +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device_fail +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode_fail +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_060_nodes_states_raid_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_060_nodes_states_raid_put_member ... ok +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found ... ok +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7d2dc92d-fa2a-421f-a58c-a03c02c9b1ed +Openstack-Request-Id: req-06900132-eda1-4880-b3ec-1a0562e89739 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7d2dc92d-fa2a-421f-a58c-a03c02c9b1ed +Openstack-Request-Id: req-06900132-eda1-4880-b3ec-1a0562e89739 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_224_drivers_vendor_passthru_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_224_drivers_vendor_passthru_get_member ... ok -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_300_lessee_reader_can_get_node_porgtroups -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_300_lessee_reader_can_get_node_porgtroups ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_057_nodes_states_provision_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_057_nodes_states_provision_put_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_225_drivers_vendor_passthru_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_225_drivers_vendor_passthru_get_observer ... ok -ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None -ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None ... ok -ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports -ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_058_nodes_states_provision_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_058_nodes_states_provision_put_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_226_drivers_vendor_passthru_post_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_226_drivers_vendor_passthru_post_admin ... ok -ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports -ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports ... ok +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc +PATCH: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a7dbc071-33f8-4b28-8261-74214ba052c6 +Openstack-Request-Id: req-5d4651ff-085a-4946-afb3-5d6318382fc2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a7dbc071-33f8-4b28-8261-74214ba052c6 +Openstack-Request-Id: req-5d4651ff-085a-4946-afb3-5d6318382fc2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d47e7d9c-f0e6-4501-ad38-8d229a46dff7 +Openstack-Request-Id: req-29eac66f-7426-4371-874f-81a5da8f3628 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d47e7d9c-f0e6-4501-ad38-8d229a46dff7 +Openstack-Request-Id: req-29eac66f-7426-4371-874f-81a5da8f3628 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ff31a4c4-964e-42ed-b233-b460f4ee409f +Openstack-Request-Id: req-772017fb-2064-40b6-a7e4-68272fe12433 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ff31a4c4-964e-42ed-b233-b460f4ee409f +Openstack-Request-Id: req-772017fb-2064-40b6-a7e4-68272fe12433 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a3792dbf-ac88-4a12-bb6d-587448d9bdf1 +Openstack-Request-Id: req-65066336-4bdd-4bd4-ae05-72fb18ffc85f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a3792dbf-ac88-4a12-bb6d-587448d9bdf1 +Openstack-Request-Id: req-65066336-4bdd-4bd4-ae05-72fb18ffc85f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1157a3ec-d634-4808-a88b-63fe2a5cab45 +Openstack-Request-Id: req-de1c1baf-cf62-4b22-8b3b-86dda8c98222 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1157a3ec-d634-4808-a88b-63fe2a5cab45 +Openstack-Request-Id: req-de1c1baf-cf62-4b22-8b3b-86dda8c98222 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-f46c6b93-c451-42b4-8e88-89c7fc25ad76 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +API ACL Testing Path delete /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc +DELETE: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f46c6b93-c451-42b4-8e88-89c7fc25ad76 +Openstack-Request-Id: req-f7c802cd-4ea6-4ad0-aaf0-a05f46a78ee4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cdb4f525-938b-4fdc-831d-083b6bb083aa +Openstack-Request-Id: req-f7c802cd-4ea6-4ad0-aaf0-a05f46a78ee4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc +DELETE: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cdb4f525-938b-4fdc-831d-083b6bb083aa +Openstack-Request-Id: req-e898ee0a-f71e-4b7d-9f75-44df7c870042 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d3e1e34a-0131-4baa-ba1e-49249b90cc96 +Openstack-Request-Id: req-e898ee0a-f71e-4b7d-9f75-44df7c870042 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_301_third_party_admin_cannot_get_portgroups -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_301_third_party_admin_cannot_get_portgroups ... ok +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc +DELETE: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_294_owner_member_cannot_delete_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_294_owner_member_cannot_delete_portgroup ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying ... ok +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode ... ok +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_reset_mac +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_reset_mac ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_265_nodes_allocation_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_265_nodes_allocation_delete_reader ... ok ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_302_owner_reader_can_list_ports -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_302_owner_reader_can_list_ports ... ok +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode_fail +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode_fail ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing ... ok ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_059_nodes_states_raid_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_059_nodes_states_raid_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_227_drivers_vendor_passthru_post_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_227_drivers_vendor_passthru_post_member ... ok ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_303_lessee_reader_can_list_ports -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_303_lessee_reader_can_list_ports ... ok -ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file -ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_060_nodes_states_raid_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_060_nodes_states_raid_put_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_228_drivers_vendor_passthru_post_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_228_drivers_vendor_passthru_post_observer ... ok -ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace -ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_304_third_party_admin_cannot_list_ports -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_304_third_party_admin_cannot_list_ports ... ok -ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args -ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_229_drivers_vendor_passthru_put_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_229_drivers_vendor_passthru_put_admin ... ok -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_295_lessee_admin_cannot_delete_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_295_lessee_admin_cannot_delete_portgroup ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9399346d-d46e-4ff2-a07f-8233cd3aecfd +Openstack-Request-Id: req-54bd0086-a147-4254-80b9-15b4e9de6809 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45164,7 +45639,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3ca58b99-1209-4bad-bde6-103fba68474a +Openstack-Request-Id: req-aa97437a-e10c-4625-ab3d-6eed9653a23e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45173,7 +45648,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-56fed91a-739c-4442-b1f0-ae58d4c255c2 +Openstack-Request-Id: req-e81445db-3abe-47cf-9a9f-2134a76acabd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45182,7 +45657,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-93090b6a-d1c9-456c-a28f-01a6db6a373f +Openstack-Request-Id: req-e639c995-663d-4754-bb20-1fc8ef778817 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45191,7 +45666,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c394c911-1a33-46ef-8a80-d9db7d8d6e73 +Openstack-Request-Id: req-089ca921-29ab-4966-8920-f3e659a0ed4f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45200,7 +45675,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-cbaca2b3-eeb1-4f78-8ed7-bf5038c70a29 +Openstack-Request-Id: req-8809fe31-284d-4986-8cbc-93ccbacd130c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45209,7 +45684,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-652fd3a4-0266-46f3-abac-5dba479becae +Openstack-Request-Id: req-154cb70b-47b1-4334-8d8f-a171d005e1d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45218,7 +45693,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c2d6869d-2db1-4dc4-868c-7220190816e8 +Openstack-Request-Id: req-68a6ac38-52bb-4464-aafa-cd3f2673bbe8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45227,7 +45702,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b1069f32-9bd2-421d-8efa-168375db29ab +Openstack-Request-Id: req-e410054c-2823-481b-bcd1-70ba93782acd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45236,7 +45711,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-09388f13-4507-4950-a82b-de980aec8292 +Openstack-Request-Id: req-0c944006-647c-4cde-b614-6814c5234aab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45245,7 +45720,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7fa109df-563e-49b5-85f4-3100fb11bc69 +Openstack-Request-Id: req-40546a7a-ce7a-4b7c-a7d0-76747001812b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45254,7 +45729,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'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-232f51ca-daf0-4bca-ab45-c70231408ac3 +Openstack-Request-Id: req-1ae5d585-6172-4c5b-b881-5b924d213383 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45263,7 +45738,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'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-b3f74328-0a98-4966-b091-1f48b2079cd7 +Openstack-Request-Id: req-c437839b-ea2c-445f-8904-0e175df64880 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45272,595 +45747,700 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_061_nodes_states_raid_put_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_061_nodes_states_raid_put_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_305_owner_reader_can_read_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_305_owner_reader_can_read_port ... ok -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects ... ok +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_validate +ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_validate ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_266_deploy_templates_post_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_266_deploy_templates_post_admin ... ok +ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file +ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_deploy_info +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_deploy_info ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_062_nodes_states_console_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_062_nodes_states_console_get_admin ... ok -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases ... ok -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_230_drivers_vendor_passthru_put_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_230_drivers_vendor_passthru_put_member ... ok +ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace +ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_296_lessee_manager_cannot_delete_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_296_lessee_manager_cannot_delete_portgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_267_deploy_templates_post_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_267_deploy_templates_post_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_1___legacy_bios_only_____bios___ +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_1___legacy_bios_only_____bios___ ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_default_mode +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_default_mode ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate ... ok +ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args +ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args ... ok ironic.tests.unit.common.test_states.StatesTest.test_state_values_length ironic.tests.unit.common.test_states.StatesTest.test_state_values_length ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_306_lessee_reader_can_read_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_306_lessee_reader_can_read_port ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_063_nodes_states_console_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_063_nodes_states_console_get_member ... ok -ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link -ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link ... ok -ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST -ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_231_drivers_vendor_passthru_put_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_231_drivers_vendor_passthru_put_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_invalid_params +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_invalid_params ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_2___uefi_only_____uefi___ +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_2___uefi_only_____uefi___ ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_297_lessee_member_cannot_delete_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_297_lessee_member_cannot_delete_portgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_268_deploy_templates_post_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_268_deploy_templates_post_reader ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_rescue_mode +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_rescue_mode ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_3___legacy_bios_and_uefi_____uefi____bios___ +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_3___legacy_bios_and_uefi_____uefi____bios___ ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_064_nodes_states_console_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_064_nodes_states_console_put_admin ... ok -ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup -ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup ... ok -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-d3e1e34a-0131-4baa-ba1e-49249b90cc96 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/ports -GET: /v1/ports {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-2aa63b06-de40-4d66-a66d-2ae3397fa8b5 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-2aa63b06-de40-4d66-a66d-2ae3397fa8b5 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/ports -GET: /v1/ports {} -GOT:Response: 200 OK +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_http_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_http_image ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist +ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_269_deploy_templates_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_269_deploy_templates_get_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_https_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_https_image ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_298_third_party_admin_cannot_delete_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_298_third_party_admin_cannot_delete_portgroup ... ok +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_with_step_name +ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_with_step_name ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_instance_image_info +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_instance_image_info ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_065_nodes_states_console_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_065_nodes_states_console_put_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_instance +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_instance ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted ... ok +API ACL Testing Path delete /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-1aa31b14-f51d-48da-9cca-f9b951591964 +Openstack-Request-Id: req-d986d1d9-f035-484e-b6be-9857a92180ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-1aa31b14-f51d-48da-9cca-f9b951591964 +Openstack-Request-Id: req-d986d1d9-f035-484e-b6be-9857a92180ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/ports -GET: /v1/ports {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-084cdb47-74e3-42af-bffc-1e6e1d489d2a +Openstack-Request-Id: req-2e971511-f279-4e40-adff-38a5e0557738 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-084cdb47-74e3-42af-bffc-1e6e1d489d2a +Openstack-Request-Id: req-2e971511-f279-4e40-adff-38a5e0557738 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -API ACL Testing Path get /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c -GET: /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dd34c072-3d76-47da-96be-af81e07f9495 +Openstack-Request-Id: req-2654dc85-c546-4ce3-abb2-335dcf73b72d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-02-07T21:35:49.701449+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, "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "portgroup_uuid": null} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dd34c072-3d76-47da-96be-af81e07f9495 +Openstack-Request-Id: req-2654dc85-c546-4ce3-abb2-335dcf73b72d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-02-07T21:35:49.701449+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, "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "portgroup_uuid": null} -API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/deploy_templates +POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-91ca3895-6ed5-416b-935c-62b7c5f5d872 +Location: http://localhost/v1/deploy_templates/6ee0d407-1196-4ba2-9f8a-9b9a09a54527 +Openstack-Request-Id: req-90e55a52-5111-47ee-ba74-624c0192785f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:35:49.816654+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "portgroup_uuid": null} -ACL Test GOT Response: 200 OK +{"uuid": "6ee0d407-1196-4ba2-9f8a-9b9a09a54527", "created_at": "2024-01-06T15:36:06.277691+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/6ee0d407-1196-4ba2-9f8a-9b9a09a54527", "rel": "self"}, {"href": "http://localhost/deploy_templates/6ee0d407-1196-4ba2-9f8a-9b9a09a54527", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} +ACL Test GOT Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-91ca3895-6ed5-416b-935c-62b7c5f5d872 +Location: http://localhost/v1/deploy_templates/6ee0d407-1196-4ba2-9f8a-9b9a09a54527 +Openstack-Request-Id: req-90e55a52-5111-47ee-ba74-624c0192785f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:35:49.816654+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "portgroup_uuid": null} -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_307_third_party_admin_cannot_read_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_307_third_party_admin_cannot_read_port ... ok -ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked -ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin ... skipped 'not updated for scope testing' -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_065_nodes_states_console_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_065_nodes_states_console_put_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_308_owner_admin_can_add_ports -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_308_owner_admin_can_add_ports ... ok -ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported -ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_233_drivers_vendor_passthru_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_233_drivers_vendor_passthru_delete_observer ... skipped 'not updated for scope testing' -ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid -ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_066_nodes_states_console_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_066_nodes_states_console_put_observer ... ok -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_309_owner_manager_can_add_ports -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_309_owner_manager_can_add_ports ... ok -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ... ok -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_067_nodes_vendor_passthru_methods_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_067_nodes_vendor_passthru_methods_get_admin ... ok -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_310_owner_admin_cannot_add_ports_to_other_nodes -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_310_owner_admin_cannot_add_ports_to_other_nodes ... ok -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test -GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} +{"uuid": "6ee0d407-1196-4ba2-9f8a-9b9a09a54527", "created_at": "2024-01-06T15:36:06.277691+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/6ee0d407-1196-4ba2-9f8a-9b9a09a54527", "rel": "self"}, {"href": "http://localhost/deploy_templates/6ee0d407-1196-4ba2-9f8a-9b9a09a54527", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} +API ACL Testing Path post /v1/deploy_templates +POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-958ba7d2-0ae0-4c94-a7e6-dbe4e756d7ae +Openstack-Request-Id: req-8e863f23-1253-4c48-a298-4ee765d660bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-958ba7d2-0ae0-4c94-a7e6-dbe4e756d7ae +Openstack-Request-Id: req-8e863f23-1253-4c48-a298-4ee765d660bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test -GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/deploy_templates +POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-981420f7-05f7-4f1d-a509-91b207ae7f2e +Openstack-Request-Id: req-9f39f2a5-6eaf-412b-836b-e0f6009a4fe6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-981420f7-05f7-4f1d-a509-91b207ae7f2e +Openstack-Request-Id: req-9f39f2a5-6eaf-412b-836b-e0f6009a4fe6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/drivers/fake-driverz/vendor_passthru?method=test -POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/deploy_templates +GET: /v1/deploy_templates {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-78be9386-7fe6-4898-9188-95717303f5ed +Openstack-Request-Id: req-233e843b-4e98-42c9-a439-7e9bf5128cd1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"deploy_templates": [{"uuid": "14901c91-15ae-4836-8a3e-120f4647f1d1", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/14901c91-15ae-4836-8a3e-120f4647f1d1", "rel": "self"}, {"href": "http://localhost/deploy_templates/14901c91-15ae-4836-8a3e-120f4647f1d1", "rel": "bookmark"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-78be9386-7fe6-4898-9188-95717303f5ed +Openstack-Request-Id: req-233e843b-4e98-42c9-a439-7e9bf5128cd1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/drivers/fake-driverz/vendor_passthru?method=test -POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None +{"deploy_templates": [{"uuid": "14901c91-15ae-4836-8a3e-120f4647f1d1", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/14901c91-15ae-4836-8a3e-120f4647f1d1", "rel": "self"}, {"href": "http://localhost/deploy_templates/14901c91-15ae-4836-8a3e-120f4647f1d1", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/deploy_templates +GET: /v1/deploy_templates {} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_270_deploy_templates_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_270_deploy_templates_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_299_owner_reader_can_get_node_portgroups +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_299_owner_reader_can_get_node_portgroups ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_ramdisk +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_ramdisk ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_066_nodes_states_console_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_066_nodes_states_console_put_observer ... ok +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_271_deploy_templates_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_271_deploy_templates_get_reader ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_boot_ramdisk +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_boot_ramdisk ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_300_lessee_reader_can_get_node_porgtroups +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_300_lessee_reader_can_get_node_porgtroups ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_local_or_whole_disk_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_local_or_whole_disk_image ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_067_nodes_vendor_passthru_methods_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_067_nodes_vendor_passthru_methods_get_admin ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_272_deploy_templates_deploy_template_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_272_deploy_templates_deploy_template_id_get_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo ... ok +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_boot_timeout +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_boot_timeout ... ok +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped +ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_068_nodes_vendor_passthru_methods_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_068_nodes_vendor_passthru_methods_get_member ... ok GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ed4c2f32-cddd-4f8c-94c6-73c84dfb9278 +Openstack-Request-Id: req-63b46432-3147-4cfb-a3b1-a62c5802f8e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ed4c2f32-cddd-4f8c-94c6-73c84dfb9278 +Openstack-Request-Id: req-63b46432-3147-4cfb-a3b1-a62c5802f8e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/drivers/fake-driverz/vendor_passthru?method=test -POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2c736605-ecd6-4d76-b641-715cd3eeef3a +Openstack-Request-Id: req-4e4d6a8e-e99b-4b84-8bb5-448f0764fe5a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2c736605-ecd6-4d76-b641-715cd3eeef3a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/drivers/fake-driverz/vendor_passthru?method=test -PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-369b0ae6-9e8a-4cbe-abf9-4653fed67adb +Openstack-Request-Id: req-4e4d6a8e-e99b-4b84-8bb5-448f0764fe5a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-369b0ae6-9e8a-4cbe-abf9-4653fed67adb -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/drivers/fake-driverz/vendor_passthru?method=test -PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-83982b0c-9711-4475-89c6-d53acca6b0c3 +Openstack-Request-Id: req-2b93ec7b-b970-4fa8-a964-f78bc6c0e3cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-83982b0c-9711-4475-89c6-d53acca6b0c3 +Openstack-Request-Id: req-2b93ec7b-b970-4fa8-a964-f78bc6c0e3cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path put /v1/drivers/fake-driverz/vendor_passthru?method=test -PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ffbe44fa-ce22-49f3-9c07-0a01031df9d6 +Openstack-Request-Id: req-61dbc567-0adc-46b4-b757-7a11da2997f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ffbe44fa-ce22-49f3-9c07-0a01031df9d6 +Openstack-Request-Id: req-61dbc567-0adc-46b4-b757-7a11da2997f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_234_nodes_bios_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_234_nodes_bios_get_admin ... ok -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_235_nodes_bios_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_235_nodes_bios_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_068_nodes_vendor_passthru_methods_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_068_nodes_vendor_passthru_methods_get_member ... ok -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_311_owner_manager_cannot_add_ports_to_other_nodes -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_311_owner_manager_cannot_add_ports_to_other_nodes ... ok -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp ... ok -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp ... ok -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_069_nodes_vendor_passthru_methods_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_069_nodes_vendor_passthru_methods_get_observer ... ok -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_236_nodes_bios_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_236_nodes_bios_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_312_owner_member_cannot_add_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_312_owner_member_cannot_add_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_070_nodes_vendor_passthru_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_070_nodes_vendor_passthru_get_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_313_lessee_admin_cannot_add_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_313_lessee_admin_cannot_add_port ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_237_nodes_bios_bios_setting_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_237_nodes_bios_bios_setting_get_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_071_nodes_vendor_passthru_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_071_nodes_vendor_passthru_get_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_314_lessee_manager_cannot_add_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_314_lessee_manager_cannot_add_port ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_238_nodes_bios_bios_setting_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_238_nodes_bios_bios_setting_get_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_072_nodes_vendor_passthru_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_072_nodes_vendor_passthru_get_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_239_nodes_bios_bios_setting_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_239_nodes_bios_bios_setting_get_observer ... ok -API ACL Testing Path get /v1/ports/abfd8dbb-1732-449a-b760-2224035c6b99 -GET: /v1/ports/abfd8dbb-1732-449a-b760-2224035c6b99 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-73a75530-5063-4e84-9657-243d92271487 +Openstack-Request-Id: req-d084633c-944a-4ede-b55c-7aca45bfef02 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port abfd8dbb-1732-449a-b760-2224035c6b99 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-73a75530-5063-4e84-9657-243d92271487 +Openstack-Request-Id: req-d084633c-944a-4ede-b55c-7aca45bfef02 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port abfd8dbb-1732-449a-b760-2224035c6b99 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'address': '00:01:02:03:04:05'} -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-08508b6c-5b52-491f-9c00-227dcb43228b +Openstack-Request-Id: req-814d16a3-6dd8-4a99-b947-3342c4375b02 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-08508b6c-5b52-491f-9c00-227dcb43228b +Openstack-Request-Id: req-814d16a3-6dd8-4a99-b947-3342c4375b02 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'address': '00:01:02:03:04:05'} -GOT:Response: 503 Service Unavailable +{"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"}]}]} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1bdb66b0-0ecd-471f-84d5-1e97e0b5b5f0 +Openstack-Request-Id: req-45e3e722-44bb-4920-80a3-826aa2af486a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1bdb66b0-0ecd-471f-84d5-1e97e0b5b5f0 +Openstack-Request-Id: req-45e3e722-44bb-4920-80a3-826aa2af486a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '573208e5-cd41-4e26-8f06-ef44022b3793', 'address': '09:01:02:03:04:09'} -GOT:Response: 403 Forbidden +{"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"}]}]} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d9a34bdb-80c2-41cd-acf9-2a3729297cc1 +Openstack-Request-Id: req-8186a372-323c-4de7-8c57-342b0d7c1842 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_301_third_party_admin_cannot_get_portgroups +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_301_third_party_admin_cannot_get_portgroups ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_273_deploy_templates_deploy_template_id_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_273_deploy_templates_deploy_template_id_get_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails ... ok +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_302_owner_reader_can_list_ports +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_302_owner_reader_can_list_ports ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_069_nodes_vendor_passthru_methods_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_069_nodes_vendor_passthru_methods_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_274_deploy_templates_deploy_template_id_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_274_deploy_templates_deploy_template_id_get_reader ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok ... ok +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_partition_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_partition_image ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_303_lessee_reader_can_list_ports +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_303_lessee_reader_can_list_ports ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_070_nodes_vendor_passthru_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_070_nodes_vendor_passthru_get_admin ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_security_parameters_update +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_security_parameters_update ... ok +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d9a34bdb-80c2-41cd-acf9-2a3729297cc1 +Openstack-Request-Id: req-f5f230c5-0134-42b2-8f71-55bed1946d80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '573208e5-cd41-4e26-8f06-ef44022b3793', 'address': '09:01:02:03:04:09'} -GOT:Response: 403 Forbidden +{"deploy_templates": [{"uuid": "3fe24d1c-e3ee-4dc2-bdf6-b4a331762baf", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/3fe24d1c-e3ee-4dc2-bdf6-b4a331762baf", "rel": "self"}, {"href": "http://localhost/deploy_templates/3fe24d1c-e3ee-4dc2-bdf6-b4a331762baf", "rel": "bookmark"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-74f054e8-f769-477e-bc96-0dc3d6d11c19 +Openstack-Request-Id: req-f5f230c5-0134-42b2-8f71-55bed1946d80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"deploy_templates": [{"uuid": "3fe24d1c-e3ee-4dc2-bdf6-b4a331762baf", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/3fe24d1c-e3ee-4dc2-bdf6-b4a331762baf", "rel": "self"}, {"href": "http://localhost/deploy_templates/3fe24d1c-e3ee-4dc2-bdf6-b4a331762baf", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/deploy_templates +GET: /v1/deploy_templates {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-74f054e8-f769-477e-bc96-0dc3d6d11c19 +Openstack-Request-Id: req-1e298665-6d8a-48bc-b4b6-f738084ffc0d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'address': '00:01:02:03:04:05'} -GOT:Response: 403 Forbidden +{"deploy_templates": [{"uuid": "d666cc15-3313-4e17-8c30-a83d12e264ed", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/d666cc15-3313-4e17-8c30-a83d12e264ed", "rel": "self"}, {"href": "http://localhost/deploy_templates/d666cc15-3313-4e17-8c30-a83d12e264ed", "rel": "bookmark"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f08a5396-091d-4661-997e-71242a3c4694 +Openstack-Request-Id: req-1e298665-6d8a-48bc-b4b6-f738084ffc0d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"deploy_templates": [{"uuid": "d666cc15-3313-4e17-8c30-a83d12e264ed", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/d666cc15-3313-4e17-8c30-a83d12e264ed", "rel": "self"}, {"href": "http://localhost/deploy_templates/d666cc15-3313-4e17-8c30-a83d12e264ed", "rel": "bookmark"}]}]} +API ACL Testing Path get /v1/deploy_templates/27189296-de8b-4142-8e1d-0214845fb3c7 +GET: /v1/deploy_templates/27189296-de8b-4142-8e1d-0214845fb3c7 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f08a5396-091d-4661-997e-71242a3c4694 +Openstack-Request-Id: req-77b0d2a4-5102-4693-bbc3-ad2dc713d7cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'address': '00:01:02:03:04:05'} -GOT:Response: 403 Forbidden +{"uuid": "27189296-de8b-4142-8e1d-0214845fb3c7", "created_at": "2024-01-06T15:36:06.918335+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/27189296-de8b-4142-8e1d-0214845fb3c7", "rel": "self"}, {"href": "http://localhost/deploy_templates/27189296-de8b-4142-8e1d-0214845fb3c7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8afab600-4461-4df1-88ae-37a7d899b1b3 +Openstack-Request-Id: req-77b0d2a4-5102-4693-bbc3-ad2dc713d7cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "27189296-de8b-4142-8e1d-0214845fb3c7", "created_at": "2024-01-06T15:36:06.918335+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/27189296-de8b-4142-8e1d-0214845fb3c7", "rel": "self"}, {"href": "http://localhost/deploy_templates/27189296-de8b-4142-8e1d-0214845fb3c7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +API ACL Testing Path get /v1/deploy_templates/71d727be-401a-4a65-8346-708104ca69e1 +GET: /v1/deploy_templates/71d727be-401a-4a65-8346-708104ca69e1 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8afab600-4461-4df1-88ae-37a7d899b1b3 +Openstack-Request-Id: req-458c93b2-002d-4ab3-8c31-d2ce60d05318 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'address': '00:01:02:03:04:05'} -GOT:Response: 403 Forbidden +{"uuid": "71d727be-401a-4a65-8346-708104ca69e1", "created_at": "2024-01-06T15:36:07.046171+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/71d727be-401a-4a65-8346-708104ca69e1", "rel": "self"}, {"href": "http://localhost/deploy_templates/71d727be-401a-4a65-8346-708104ca69e1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ff7c97e8-0944-42be-b9a5-65033f0d3bf9 +Openstack-Request-Id: req-458c93b2-002d-4ab3-8c31-d2ce60d05318 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "71d727be-401a-4a65-8346-708104ca69e1", "created_at": "2024-01-06T15:36:07.046171+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/71d727be-401a-4a65-8346-708104ca69e1", "rel": "self"}, {"href": "http://localhost/deploy_templates/71d727be-401a-4a65-8346-708104ca69e1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +API ACL Testing Path get /v1/deploy_templates/85f53d6b-bb83-456b-87bb-4b5fe96b59c1 +GET: /v1/deploy_templates/85f53d6b-bb83-456b-87bb-4b5fe96b59c1 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ff7c97e8-0944-42be-b9a5-65033f0d3bf9 +Openstack-Request-Id: req-11280cf9-f831-4e6e-82c2-be8f29ba6f2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'address': '00:01:02:03:04:05'} -GOT:Response: 403 Forbidden +{"uuid": "85f53d6b-bb83-456b-87bb-4b5fe96b59c1", "created_at": "2024-01-06T15:36:07.188492+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/85f53d6b-bb83-456b-87bb-4b5fe96b59c1", "rel": "self"}, {"href": "http://localhost/deploy_templates/85f53d6b-bb83-456b-87bb-4b5fe96b59c1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-60e3cdc7-d611-4d36-a525-32cf90ed47a3 +Openstack-Request-Id: req-11280cf9-f831-4e6e-82c2-be8f29ba6f2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_315_lessee_member_cannot_add_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_315_lessee_member_cannot_add_port ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_073_nodes_vendor_passthru_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_073_nodes_vendor_passthru_post_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_316_third_party_admin_cannot_add_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_316_third_party_admin_cannot_add_port ... ok +{"uuid": "85f53d6b-bb83-456b-87bb-4b5fe96b59c1", "created_at": "2024-01-06T15:36:07.188492+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/85f53d6b-bb83-456b-87bb-4b5fe96b59c1", "rel": "self"}, {"href": "http://localhost/deploy_templates/85f53d6b-bb83-456b-87bb-4b5fe96b59c1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +API ACL Testing Path patch /v1/deploy_templates/8f90047f-58c2-4317-8f2f-ba23348dcad4 +PATCH: /v1/deploy_templates/8f90047f-58c2-4317-8f2f-ba23348dcad4 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9d7e8ea7-ca56-4e89-b484-c1f5b12d87ae +Openstack-Request-Id: req-f9c36c16-ce01-4328-bb40-5a8d61242bb0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"bios": [{"created_at": "2025-02-07T21:35:50.193035+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"}]}]} -ACL Test GOT Response: 200 OK +{"uuid": "8f90047f-58c2-4317-8f2f-ba23348dcad4", "created_at": "2024-01-06T15:36:07.317829+00:00", "updated_at": "2024-01-06T15:36:07.403949+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/8f90047f-58c2-4317-8f2f-ba23348dcad4", "rel": "self"}, {"href": "http://localhost/deploy_templates/8f90047f-58c2-4317-8f2f-ba23348dcad4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_275_deploy_templates_deploy_template_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_275_deploy_templates_deploy_template_id_patch_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image_cleaning +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image_cleaning ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_304_third_party_admin_cannot_list_ports +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_304_third_party_admin_cannot_list_ports ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_071_nodes_vendor_passthru_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_071_nodes_vendor_passthru_get_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_non_image_deploy +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_non_image_deploy ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_276_deploy_templates_deploy_template_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_276_deploy_templates_deploy_template_id_patch_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_middle_of_clean_step +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_middle_of_clean_step ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_305_owner_reader_can_read_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_305_owner_reader_can_read_port ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_anaconda +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_anaconda ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_072_nodes_vendor_passthru_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_072_nodes_vendor_passthru_get_observer ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_277_deploy_templates_deploy_template_id_patch_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_277_deploy_templates_deploy_template_id_patch_reader ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_306_lessee_reader_can_read_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_306_lessee_reader_can_read_port ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_073_nodes_vendor_passthru_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_073_nodes_vendor_passthru_post_admin ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_278_deploy_templates_deploy_template_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_278_deploy_templates_deploy_template_id_delete_admin ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_glance_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_glance_image ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node ... ok +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9d7e8ea7-ca56-4e89-b484-c1f5b12d87ae +Openstack-Request-Id: req-8186a372-323c-4de7-8c57-342b0d7c1842 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"bios": [{"created_at": "2025-02-07T21:35:50.193035+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"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/ports +GET: /v1/ports {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fbe10b4e-df42-42f6-be6d-f75c90822403 +Openstack-Request-Id: req-a9971ab2-70c4-478d-a750-cac523b3f4c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"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"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fbe10b4e-df42-42f6-be6d-f75c90822403 +Openstack-Request-Id: req-a9971ab2-70c4-478d-a750-cac523b3f4c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} +{"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"}]}]} +API ACL Testing Path get /v1/ports +GET: /v1/ports {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1d8fec8d-5f0f-4122-80ae-01d03d759fb6 +Openstack-Request-Id: req-ef1e76fa-9c6f-43d1-8226-c87a7fa1d42f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"bios": [{"created_at": "2025-02-07T21:35:50.456010+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"}]}]} +{"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"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1d8fec8d-5f0f-4122-80ae-01d03d759fb6 +Openstack-Request-Id: req-ef1e76fa-9c6f-43d1-8226-c87a7fa1d42f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"bios": [{"created_at": "2025-02-07T21:35:50.456010+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"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} +{"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"}]}]} +API ACL Testing Path get /v1/ports +GET: /v1/ports {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-34d5c965-9d94-4838-b691-e9656ba2a3f3 +Openstack-Request-Id: req-0c326b3b-0fe3-456d-b8fd-b0b4546d91a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"FAKE_SETTING": {"created_at": "2025-02-07T21:35:50.625291+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"}]}} +{"ports": []} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-34d5c965-9d94-4838-b691-e9656ba2a3f3 +Openstack-Request-Id: req-0c326b3b-0fe3-456d-b8fd-b0b4546d91a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"FAKE_SETTING": {"created_at": "2025-02-07T21:35:50.625291+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"}]}} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} -GOT:Response: 404 Not Found +{"ports": []} +API ACL Testing Path get /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c +GET: /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4d645b27-7d42-473f-9d1a-599e64320c9d +Openstack-Request-Id: req-bdaac53d-39a6-491f-8f8c-d1379ab7466f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2024-01-06T15:36:07.542575+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, "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "portgroup_uuid": null} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4d645b27-7d42-473f-9d1a-599e64320c9d +Openstack-Request-Id: req-bdaac53d-39a6-491f-8f8c-d1379ab7466f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} +{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2024-01-06T15:36:07.542575+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, "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "portgroup_uuid": null} +API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-33c2240b-4dd1-48a3-b418-02cb938c7618 +Openstack-Request-Id: req-02256948-a40a-40e5-a109-e6438e49a26d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"FAKE_SETTING": {"created_at": "2025-02-07T21:35:50.885292+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"}]}} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:36:07.692850+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "portgroup_uuid": null} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-33c2240b-4dd1-48a3-b418-02cb938c7618 +Openstack-Request-Id: req-02256948-a40a-40e5-a109-e6438e49a26d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"FAKE_SETTING": {"created_at": "2025-02-07T21:35:50.885292+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"}]}} -API ACL Testing Path get /v1/conductors -GET: /v1/conductors {} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_240_conductors_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_240_conductors_get_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying ... ok +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:36:07.692850+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "portgroup_uuid": null} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_307_third_party_admin_cannot_read_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_307_third_party_admin_cannot_read_port ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_279_deploy_templates_deploy_template_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_279_deploy_templates_deploy_template_id_delete_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_074_nodes_vendor_passthru_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_074_nodes_vendor_passthru_post_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_241_conductors_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_241_conductors_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_317_owner_admin_can_modify_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_317_owner_admin_can_modify_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode_fail +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode_fail ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_308_owner_admin_can_add_ports +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_308_owner_admin_can_add_ports ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_280_deploy_templates_deploy_template_id_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_280_deploy_templates_deploy_template_id_delete_reader ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3af9a4d3-bb2d-4b80-b976-e8d943e374f3 +Openstack-Request-Id: req-e2eab900-64c9-4f8d-ad82-c8bc72e4414a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45869,7 +46449,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-88334d4b-97ba-492e-9061-150e64e412aa +Openstack-Request-Id: req-cb3ccda1-c6fd-4b6a-96fd-743470bb3ec6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45878,7 +46458,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7391d153-e142-4a52-98b9-0acd29b313e1 +Openstack-Request-Id: req-dc1c48ef-2a9d-49c7-b240-f3ee0e826cf8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45887,7 +46467,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-017ef9e0-3977-4f87-9685-38b4b1a05712 +Openstack-Request-Id: req-6291b86d-a728-4dc1-9fa2-1e7b9ed20bcb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45896,7 +46476,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-36994afb-7deb-4ba5-ac89-3a726269a26b +Openstack-Request-Id: req-63b340e8-d615-4177-94a7-b4ecb84ec836 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45905,7 +46485,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-993d55dd-b234-45ae-b71b-3f372c8f5551 +Openstack-Request-Id: req-0e867727-4add-49e5-bb9e-b4af0f2edc3e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45914,7 +46494,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ebcabefb-51ac-4089-96e7-67c576b333bc +Openstack-Request-Id: req-d314e92a-d1e0-49b1-85c4-be5823435d0a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45923,7 +46503,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5e7fafad-15b6-4741-94c3-dbe10d3709ef +Openstack-Request-Id: req-2a359b9a-8f12-4aa8-ab06-3b25fa5ca799 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45932,7 +46512,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a1e5f117-93d1-4c01-8a32-ea18cd6a0d5f +Openstack-Request-Id: req-343e2e1f-7b7e-4393-95c0-75ff78add985 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45941,7 +46521,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f6c06b86-d7ec-457d-83b8-4580563702f2 +Openstack-Request-Id: req-e2f34066-8af4-415e-998a-54c75880f11a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45950,7 +46530,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-99d8f99d-f485-4225-9b6c-43dde9134f9c +Openstack-Request-Id: req-5217a311-d877-4580-9d81-534438c800ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45959,7 +46539,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-011cc779-3761-4c82-abaa-737841cf3ca1 +Openstack-Request-Id: req-e108ade4-7414-4bd9-af63-19989abf3cd7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45968,7 +46548,7 @@ POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c68ffc7b-ba90-49c9-829d-dd146153ad55 +Openstack-Request-Id: req-52d7bb3e-6b6c-4c35-b6a0-0ed52aec5654 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45977,7 +46557,7 @@ POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-920df5bc-d1a4-4616-a75c-bc17b6617980 +Openstack-Request-Id: req-996e3b15-15ce-4b1d-95ee-ba123dfba54b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -45986,358 +46566,757 @@ POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_075_nodes_vendor_passthru_post_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_075_nodes_vendor_passthru_post_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_281_chassis_post_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_281_chassis_post_admin ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection_missing +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection_missing ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_076_nodes_vendor_passthru_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_076_nodes_vendor_passthru_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_318_owner_manager_can_modify_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_318_owner_manager_can_modify_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_243_conductors_hostname_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_243_conductors_hostname_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_309_owner_manager_can_add_ports +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_309_owner_manager_can_add_ports ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_glance +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_glance ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_077_nodes_vendor_passthru_put_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_077_nodes_vendor_passthru_put_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_319_owner_member_cannot_modify_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_319_owner_member_cannot_modify_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_244_conductors_hostname_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_244_conductors_hostname_get_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties ... ok +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-f9c36c16-ce01-4328-bb40-5a8d61242bb0 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "8f90047f-58c2-4317-8f2f-ba23348dcad4", "created_at": "2024-01-06T15:36:07.317829+00:00", "updated_at": "2024-01-06T15:36:07.403949+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/8f90047f-58c2-4317-8f2f-ba23348dcad4", "rel": "self"}, {"href": "http://localhost/deploy_templates/8f90047f-58c2-4317-8f2f-ba23348dcad4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +API ACL Testing Path patch /v1/deploy_templates/1f2a1e6c-9f10-467a-b885-d47430ab8bef +PATCH: /v1/deploy_templates/1f2a1e6c-9f10-467a-b885-d47430ab8bef [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-a4e2eb81-b79f-4390-9d83-0647b1bdaaea +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-a4e2eb81-b79f-4390-9d83-0647b1bdaaea +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/deploy_templates/0e1fa9d5-a173-4b1b-8417-9deba60d0fdb +PATCH: /v1/deploy_templates/0e1fa9d5-a173-4b1b-8417-9deba60d0fdb [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-be1435de-f6d2-43a1-9c6c-60f88f202087 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-be1435de-f6d2-43a1-9c6c-60f88f202087 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/deploy_templates/ee0fbca9-19d2-4e54-9df0-e1fcde7c19f2 +DELETE: /v1/deploy_templates/ee0fbca9-19d2-4e54-9df0-e1fcde7c19f2 +GOT:Response: 204 No Content +Openstack-Request-Id: req-f695af8c-ee38-4ac5-bc4b-63401ef3d7a6 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 + +ACL Test GOT Response: 204 No Content +Openstack-Request-Id: req-f695af8c-ee38-4ac5-bc4b-63401ef3d7a6 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 + +API ACL Testing Path delete /v1/deploy_templates/23590b75-65f5-4ccd-a2ed-7b1904a60e31 +DELETE: /v1/deploy_templates/23590b75-65f5-4ccd-a2ed-7b1904a60e31 +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-4b7d32da-a754-4f55-8c29-e3c5149bb8d8 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-4b7d32da-a754-4f55-8c29-e3c5149bb8d8 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/deploy_templates/1247f91c-9740-432c-a4ba-c185c33c4569 +DELETE: /v1/deploy_templates/1247f91c-9740-432c-a4ba-c185c33c4569 +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-47cfc3b8-5869-434b-b1c6-a38ea4fd31a1 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-47cfc3b8-5869-434b-b1c6-a38ea4fd31a1 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/chassis +POST: /v1/chassis {'description': 'test-chassis'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/chassis/e4a599de-b647-4861-856b-d66f8babfbb4 +Openstack-Request-Id: req-0bd8a00d-4067-4e54-8039-d86091d9ad1f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "e4a599de-b647-4861-856b-d66f8babfbb4", "created_at": "2024-01-06T15:36:08.232179+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e4a599de-b647-4861-856b-d66f8babfbb4", "rel": "self"}, {"href": "http://localhost/chassis/e4a599de-b647-4861-856b-d66f8babfbb4", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e4a599de-b647-4861-856b-d66f8babfbb4/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e4a599de-b647-4861-856b-d66f8babfbb4/nodes", "rel": "bookmark"}]]} +ACL Test GOT Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/chassis/e4a599de-b647-4861-856b-d66f8babfbb4 +Openstack-Request-Id: req-0bd8a00d-4067-4e54-8039-d86091d9ad1f +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "e4a599de-b647-4861-856b-d66f8babfbb4", "created_at": "2024-01-06T15:36:08.232179+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e4a599de-b647-4861-856b-d66f8babfbb4", "rel": "self"}, {"href": "http://localhost/chassis/e4a599de-b647-4861-856b-d66f8babfbb4", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e4a599de-b647-4861-856b-d66f8babfbb4/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e4a599de-b647-4861-856b-d66f8babfbb4/nodes", "rel": "bookmark"}]]} +API ACL Testing Path post /v1/chassis +POST: /v1/chassis {'description': 'test-chassis'} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-3827e74b-8e23-4fb7-ace7-2d91a177264a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_282_chassis_post_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_282_chassis_post_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_310_owner_admin_cannot_add_ports_to_other_nodes +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_310_owner_admin_cannot_add_ports_to_other_nodes ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_fix_broken_interface +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_fix_broken_interface ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_283_chassis_post_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_283_chassis_post_reader ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver ... ok +ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist +ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver_exc +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver_exc ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_078_nodes_vendor_passthru_put_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_078_nodes_vendor_passthru_put_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_320_lessee_admin_cannot_modify_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_320_lessee_admin_cannot_modify_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_245_conductors_hostname_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_245_conductors_hostname_get_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_311_owner_manager_cannot_add_ports_to_other_nodes +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_311_owner_manager_cannot_add_ports_to_other_nodes ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_284_chassis_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_284_chassis_get_admin ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_field_with_broken_interface +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_field_with_broken_interface ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue_no_rescue_ramdisk +ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue_no_rescue_ramdisk ... ok +ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly +ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_auth_failure_logging_threshold +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_auth_failure_logging_threshold ... ok +ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception +ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_079_nodes_vendor_passthru_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_079_nodes_vendor_passthru_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_321_lessee_manager_cannot_modify_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_321_lessee_manager_cannot_modify_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_285_chassis_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_285_chassis_get_member ... ok +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_312_owner_member_cannot_add_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_312_owner_member_cannot_add_port ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties ... ok +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_286_chassis_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_286_chassis_get_reader ... ok +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_080_nodes_vendor_passthru_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_080_nodes_vendor_passthru_delete_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_322_lessee_member_cannot_modify_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_322_lessee_member_cannot_modify_port ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_313_lessee_admin_cannot_add_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_313_lessee_admin_cannot_add_port ... ok +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware ... ok +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_287_chassis_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_287_chassis_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props ... ok +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_081_nodes_vendor_passthru_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_081_nodes_vendor_passthru_delete_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk ... ok +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_314_lessee_manager_cannot_add_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_314_lessee_manager_cannot_add_port ... ok +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh ... ok ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-60e3cdc7-d611-4d36-a525-32cf90ed47a3 +Openstack-Request-Id: req-3827e74b-8e23-4fb7-ace7-2d91a177264a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'address': '00:01:02:03:04:05'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/chassis +POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fa1a58f3-94bf-4d3e-92fb-84c9d11dde9b +Openstack-Request-Id: req-a7061e06-500f-493b-a544-6194c89ec3d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fa1a58f3-94bf-4d3e-92fb-84c9d11dde9b +Openstack-Request-Id: req-a7061e06-500f-493b-a544-6194c89ec3d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c -PATCH: /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/chassis +GET: /v1/chassis {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-e1289fe4-9c9e-439f-9b11-919781461ca8 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-e1289fe4-9c9e-439f-9b11-919781461ca8 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +API ACL Testing Path get /v1/chassis +GET: /v1/chassis {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-08a23145-dc9d-4a4c-a7de-9330388b5b91 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-08a23145-dc9d-4a4c-a7de-9330388b5b91 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +API ACL Testing Path get /v1/chassis +GET: /v1/chassis {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-d38e39bf-f48a-476e-8fc1-6fc9f2125941 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-d38e39bf-f48a-476e-8fc1-6fc9f2125941 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +API ACL Testing Path get /v1/chassis/detail +GET: /v1/chassis/detail {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-2815eb3c-e0e0-41cb-9c1a-8f06ec881729 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:08.859932+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"}]]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-2815eb3c-e0e0-41cb-9c1a-8f06ec881729 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:08.859932+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"}]]}]} +API ACL Testing Path get /v1/chassis/detail +GET: /v1/chassis/detail {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-c904dd2d-69f7-485f-a79c-7f08b1d74ab5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:08.962924+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"}]]}]} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_288_chassis_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_288_chassis_detail_get_member ... ok +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save +ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_082_nodes_traits_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_082_nodes_traits_get_admin ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception ... ok +ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value +ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value ... ok +ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value +ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value ... ok +ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value +ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_289_chassis_detail_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_289_chassis_detail_get_reader ... ok +ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value +ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_083_nodes_traits_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_083_nodes_traits_get_member ... ok +API ACL Testing Path get /v1/ports/abfd8dbb-1732-449a-b760-2224035c6b99 +GET: /v1/ports/abfd8dbb-1732-449a-b760-2224035c6b99 {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-8e068d09-ad7e-4c5d-a0e0-6bb8d0d9916a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port abfd8dbb-1732-449a-b760-2224035c6b99 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-8e068d09-ad7e-4c5d-a0e0-6bb8d0d9916a +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port abfd8dbb-1732-449a-b760-2224035c6b99 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/ports +POST: /v1/ports {'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-07ef1d13-a409-43ed-9cff-8fa5461449c4 +Openstack-Request-Id: req-8a6b71a3-04d3-4023-a501-c221a0e9662c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-07ef1d13-a409-43ed-9cff-8fa5461449c4 +Openstack-Request-Id: req-8a6b71a3-04d3-4023-a501-c221a0e9662c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c -PATCH: /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +API ACL Testing Path post /v1/ports +POST: /v1/ports {'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-f645cb2a-259e-4c51-b57a-d4ac2bb7fff3 +Openstack-Request-Id: req-eb8daedb-4ee4-4600-a05a-64926c55f32a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f645cb2a-259e-4c51-b57a-d4ac2bb7fff3 +Openstack-Request-Id: req-eb8daedb-4ee4-4600-a05a-64926c55f32a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c -PATCH: /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +API ACL Testing Path post /v1/ports +POST: /v1/ports {'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-b7aea380-9e1e-4481-a044-645e90e49153 +Openstack-Request-Id: req-37737215-bcc4-41ce-8af1-71841eb153d7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b7aea380-9e1e-4481-a044-645e90e49153 +Openstack-Request-Id: req-37737215-bcc4-41ce-8af1-71841eb153d7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/ports +POST: /v1/ports {'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-3acfc595-6927-4388-bd7c-8fdfc42ecec1 +Openstack-Request-Id: req-ecac907b-35ee-425c-b2c2-ca8ec4145cf5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3acfc595-6927-4388-bd7c-8fdfc42ecec1 +Openstack-Request-Id: req-ecac907b-35ee-425c-b2c2-ca8ec4145cf5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/ports +POST: /v1/ports {'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-8e62ad66-ebbc-400b-bdda-e49b83131338 +Openstack-Request-Id: req-d30974a9-62ce-4ccd-a16e-d99608e7efca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8e62ad66-ebbc-400b-bdda-e49b83131338 +Openstack-Request-Id: req-d30974a9-62ce-4ccd-a16e-d99608e7efca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/ports +POST: /v1/ports {'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-7b88e22d-3f45-4147-ad0c-1da06e41c225 +Openstack-Request-Id: req-4a437efe-54e0-4c0d-9e27-3977ed852456 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7b88e22d-3f45-4147-ad0c-1da06e41c225 +Openstack-Request-Id: req-4a437efe-54e0-4c0d-9e27-3977ed852456 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/ports +POST: /v1/ports {'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-3caf5cf4-cc26-4e89-93a0-c4ca4bfbe435 +Openstack-Request-Id: req-c429101f-a856-4729-82d7-29b05beb5ad2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_323_third_party_admin_cannot_modify_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_323_third_party_admin_cannot_modify_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_082_nodes_traits_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_082_nodes_traits_get_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_246_allocations_post_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_246_allocations_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_083_nodes_traits_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_083_nodes_traits_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_324_owner_admin_can_delete_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_324_owner_admin_can_delete_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-c429101f-a856-4729-82d7-29b05beb5ad2 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/ports +POST: /v1/ports {'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-d9d213d3-1529-4dee-9b55-0f43d860323d +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_315_lessee_member_cannot_add_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_315_lessee_member_cannot_add_port ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist ... ok +ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict +ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_290_chassis_chassis_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_290_chassis_chassis_id_get_admin ... ok +ironic.tests.unit.objects.test_trait.TestTraitObject.test_create +ironic.tests.unit.objects.test_trait.TestTraitObject.test_create ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_316_third_party_admin_cannot_add_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_316_third_party_admin_cannot_add_port ... ok +ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list +ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_084_nodes_traits_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_084_nodes_traits_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_325_owner_manager_can_delete_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_325_owner_manager_can_delete_port ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_247_allocations_post_member -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." -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy ... ok +ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy +ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_291_chassis_chassis_id_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_291_chassis_chassis_id_get_member ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different ... ok +ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list +ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_clean ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap ... ok +ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists +ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_317_owner_admin_can_modify_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_317_owner_admin_can_modify_port ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_085_nodes_traits_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_085_nodes_traits_put_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_326_owner_member_cannot_delete_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_326_owner_member_cannot_delete_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_292_chassis_chassis_id_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_292_chassis_chassis_id_get_reader ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance ... ok +ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id +ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero ... ok +ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names +ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_removed +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_removed ... ok +ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute +ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_clean ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state ... ok +ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute +ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_086_nodes_traits_put_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_086_nodes_traits_put_member ... ok +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-c904dd2d-69f7-485f-a79c-7f08b1d74ab5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:08.962924+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"}]]}]} +API ACL Testing Path get /v1/chassis/detail +GET: /v1/chassis/detail {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-adce0f35-fac0-47cd-bb39-e85a672fff6b +Openstack-Request-Id: req-6a64f33b-354a-4215-8255-5924cc44d0c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}]} +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:09.114886+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"}]]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-adce0f35-fac0-47cd-bb39-e85a672fff6b +Openstack-Request-Id: req-6a64f33b-354a-4215-8255-5924cc44d0c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}]} -API ACL Testing Path get /v1/conductors -GET: /v1/conductors {} -GOT:Response: 403 Forbidden +{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:09.114886+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"}]]}]} +API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-db3037cd-f64e-469a-8c0f-9684b5bc76d9 +Openstack-Request-Id: req-7b782fbd-c25a-4999-8f6a-deb6a5771ad3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:09.224217+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"}]]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-db3037cd-f64e-469a-8c0f-9684b5bc76d9 +Openstack-Request-Id: req-7b782fbd-c25a-4999-8f6a-deb6a5771ad3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/conductors -GET: /v1/conductors {} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:09.224217+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"}]]} +API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ca289061-ebf6-40e0-8757-cd7cb3eec58c +Openstack-Request-Id: req-adbbc767-8c71-40b6-9ac1-47b4afa4b95a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}]} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:09.331907+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"}]]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ca289061-ebf6-40e0-8757-cd7cb3eec58c +Openstack-Request-Id: req-adbbc767-8c71-40b6-9ac1-47b4afa4b95a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}]} -API ACL Testing Path get /v1/conductors/test-conductor-node -GET: /v1/conductors/test-conductor-node {} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:09.331907+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"}]]} +API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-adf573a7-18e9-4818-babb-7576860658ab +Openstack-Request-Id: req-90a42af0-8960-49a6-a5ff-ff8e404f6622 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"created_at": "2025-02-07T21:35:51.428700+00:00", "updated_at": "2025-02-07T21:35:51.429860+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} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:09.428052+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"}]]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-adf573a7-18e9-4818-babb-7576860658ab +Openstack-Request-Id: req-90a42af0-8960-49a6-a5ff-ff8e404f6622 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"created_at": "2025-02-07T21:35:51.428700+00:00", "updated_at": "2025-02-07T21:35:51.429860+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} -API ACL Testing Path get /v1/conductors/test-conductor-node -GET: /v1/conductors/test-conductor-node {} -GOT:Response: 403 Forbidden +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:09.428052+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"}]]} +API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_293_chassis_chassis_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_293_chassis_chassis_id_patch_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_318_owner_manager_can_modify_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_318_owner_manager_can_modify_port ... ok +ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked +ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid ... ok +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'network_type': 'unmanaged'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-609ec223-1621-44d7-991f-809e73a7c804 +Openstack-Request-Id: req-56f17635-de23-4812-a0c4-80ca4225a8b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.63 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/ports {'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': 'physnet1', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-609ec223-1621-44d7-991f-809e73a7c804 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-9176159e-e520-493e-b703-3ea8e867c994 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/conductors/test-conductor-node -GET: /v1/conductors/test-conductor-node {} -GOT:Response: 200 OK +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:29.560998+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +POST: /v1/ports {'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': 'physnet1', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-6e3a24ec-b4c9-4c90-baf3-7fb7cbc2d486 +Openstack-Request-Id: req-82bb5872-7818-4410-98ee-fb326b40283d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"created_at": "2025-02-07T21:35:51.620167+00:00", "updated_at": "2025-02-07T21:35:51.621346+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} -ACL Test GOT Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.33 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/ports {'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': 'physnet1', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-6e3a24ec-b4c9-4c90-baf3-7fb7cbc2d486 +Openstack-Request-Id: req-a49ae948-0213-4d3d-b0ac-9659108f3518 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"created_at": "2025-02-07T21:35:51.620167+00:00", "updated_at": "2025-02-07T21:35:51.621346+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} -API ACL Testing Path post /v1/allocations -POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-2245a72d-2e8e-41d7-a78b-0667965b3f2a +Openstack-Request-Id: req-11067a56-1fa8-4ea7-acdf-b62aae10ed5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +X-Openstack-Ironic-Api-Version: 1.14 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-2245a72d-2e8e-41d7-a78b-0667965b3f2a +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-5fbb2594-69db-499c-a5ab-757fe1e8bb6a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/allocations -POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:34:31.452326+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} +POST: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-59505bc0-34b5-4b1b-b1d3-29bc1be9798a +Openstack-Request-Id: req-460a0740-fb59-4119-9440-918498cae8dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_248_allocations_post_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_248_allocations_post_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_327_lessee_admin_cannot_delete_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_327_lessee_admin_cannot_delete_port ... ok +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +{'deployment_ari_path': 'http://192.1.2.3:1234/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_ramdisk', 'pxe_append_params': 'test_param ipa-global-request-id=req-ea54d5ff-0506-42d6-84b7-48af3c5cd73d', 'deployment_aki_path': 'http://192.1.2.3:1234/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_kernel', 'tftp_server': '127.0.0.1', 'ipxe_timeout': 0, 'ari_path': 'no_ramdisk', 'aki_path': 'no_kernel', 'initrd_filename': 'deploy_ramdisk'} +{'deploy_kernel': ('deploy_kernel', '/tmp/tmp7xsmavhw/tmp93bekaex/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_kernel'), 'deploy_ramdisk': ('deploy_ramdisk', '/tmp/tmp7xsmavhw/tmp93bekaex/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_ramdisk')} +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_clean ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_294_chassis_chassis_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_294_chassis_chassis_id_patch_member ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_087_nodes_traits_put_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_087_nodes_traits_put_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_249_allocations_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_249_allocations_get_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_328_lessee_manager_cannot_delete_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_328_lessee_manager_cannot_delete_port ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_deploy ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_319_owner_member_cannot_modify_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_319_owner_member_cannot_modify_port ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_with_broken_interface +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_with_broken_interface ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_295_chassis_chassis_id_patch_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_295_chassis_chassis_id_patch_reader ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_088_nodes_traits_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_088_nodes_traits_delete_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_iso -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_iso ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_250_allocations_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_250_allocations_get_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_329_lessee_member_cannot_delete_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_329_lessee_member_cannot_delete_port ... ok +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_avoid_repeatedly_resume_cleaning +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_avoid_repeatedly_resume_cleaning ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_320_lessee_admin_cannot_modify_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_320_lessee_admin_cannot_modify_port ... ok +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_296_chassis_chassis_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_296_chassis_chassis_id_delete_admin ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set ... ok +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bbe2ebbb-506f-45d3-bf22-ca1e9f2734fb +Openstack-Request-Id: req-3d00b386-9ecc-4075-ba75-b84cedb85770 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -46346,7 +47325,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0bbd8765-843d-4376-8524-f696cbf75f64 +Openstack-Request-Id: req-e06477a4-0cad-4d9c-b5da-40085b32742f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -46355,7 +47334,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7105ec93-3388-42df-ac9f-5bd21abe7239 +Openstack-Request-Id: req-9f6284c2-05bd-4aa9-9aa0-ee686a4e2409 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -46364,7 +47343,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-02088d14-66da-4010-9c9b-02277f39271d +Openstack-Request-Id: req-c77cad15-f359-42fb-a207-ff89cc27f0c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -46373,7 +47352,7 @@ 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-62403d3e-e373-4d3f-ab67-d2dbc58c346e +Openstack-Request-Id: req-4d0fbf8e-3773-4cf2-b885-d41c3f4ce64f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -46382,7 +47361,7 @@ 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-d9022206-8d71-4f99-bd3b-bb0086148b89 +Openstack-Request-Id: req-01f01247-475c-4e14-84de-fc3983aa1137 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -46391,7 +47370,7 @@ 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-e5a98ee7-c9a0-47d1-b875-ed8b8ac4d4e0 +Openstack-Request-Id: req-59f2a9c4-07c3-49ce-a744-d2ede8c990c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -46400,7 +47379,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-152946ed-62c6-4173-9e86-f14fe871502e +Openstack-Request-Id: req-bad5f97b-6010-47a3-8c61-fd91144985bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -46409,7 +47388,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-62249079-75ce-49e5-98a5-27ff69fe3b21 +Openstack-Request-Id: req-9abc6bd7-10f4-4a37-a9d3-291770aa967b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -46418,7 +47397,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-20e824af-2ee4-49d4-83d2-51da0339fd12 +Openstack-Request-Id: req-2c9bdac0-f99a-48fb-b139-2284ab8ad9c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -46427,7 +47406,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4087a0e4-3ba3-4785-b4b8-56c84b028a9a +Openstack-Request-Id: req-a7dacc41-7629-45cc-8d72-4cdd9bd23ad6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -46436,7 +47415,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-61d1fa8e-2ef7-43d4-a82a-f54b2c7d8087 +Openstack-Request-Id: req-6b0c5c05-95a7-4475-957c-9b208ee4fa71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -46445,7 +47424,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f7ad517a-85bb-4f05-8cca-62c6c65a743a +Openstack-Request-Id: req-329f2396-02eb-45f9-8e98-19b1ca8e6681 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -46454,7 +47433,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5f30cbdd-7f03-4bc6-882d-869f6a035732 +Openstack-Request-Id: req-cea9c73e-6925-489b-8dd6-42b6ee6136d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -46463,569 +47442,590 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_089_nodes_traits_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_089_nodes_traits_delete_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_251_allocations_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_251_allocations_get_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_330_third_party_admin_cannot_delete_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_330_third_party_admin_cannot_delete_port ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_297_chassis_chassis_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_297_chassis_chassis_id_delete_member ... ok +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_invalid_state +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_invalid_state ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_321_lessee_manager_cannot_modify_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_321_lessee_manager_cannot_modify_port ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_clean ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_090_nodes_traits_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_090_nodes_traits_delete_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_252_allocations_allocation_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_252_allocations_allocation_id_get_admin ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_reason_without_retired +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_reason_without_retired ... ok +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_298_chassis_chassis_id_delete_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_298_chassis_chassis_id_delete_reader ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy ... ok +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_set +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_set ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_322_lessee_member_cannot_modify_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_322_lessee_member_cannot_modify_port ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_091_nodes_traits_trait_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_091_nodes_traits_trait_put_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image ... ok -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-3caf5cf4-cc26-4e89-93a0-c4ca4bfbe435 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c -DELETE: /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c -GOT:Response: 503 Service Unavailable +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_unset +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_unset ... ok +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-697eb133-b7a6-4917-a1cf-06f746ccfcca +Openstack-Request-Id: req-3fbc71e7-cb7f-4e6a-82f4-d63381f5744f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:09.550943+00:00", "updated_at": "2024-01-06T15:36:09.598402+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"}]]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-697eb133-b7a6-4917-a1cf-06f746ccfcca +Openstack-Request-Id: req-3fbc71e7-cb7f-4e6a-82f4-d63381f5744f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c -DELETE: /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c -GOT:Response: 503 Service Unavailable +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:09.550943+00:00", "updated_at": "2024-01-06T15:36:09.598402+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"}]]} +API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7593cb1f-7ca0-4150-a16b-fc897d7f0e3b +Openstack-Request-Id: req-5b4b7d3b-30aa-4df7-b099-b7b358337327 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:09.695393+00:00", "updated_at": "2024-01-06T15:36:09.752634+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"}]]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7593cb1f-7ca0-4150-a16b-fc897d7f0e3b +Openstack-Request-Id: req-5b4b7d3b-30aa-4df7-b099-b7b358337327 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c -DELETE: /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2024-01-06T15:36:09.695393+00:00", "updated_at": "2024-01-06T15:36:09.752634+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"}]]} +API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2d3a7a4c-557b-4c55-b86d-6f37f69b3d9a +Openstack-Request-Id: req-1d4cbb0d-0071-432b-b4b9-37981c4febaa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2d3a7a4c-557b-4c55-b86d-6f37f69b3d9a +Openstack-Request-Id: req-1d4cbb0d-0071-432b-b4b9-37981c4febaa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-ffa9f59f-a229-41a6-823b-9e488213b420 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GOT:Response: 204 No Content +Openstack-Request-Id: req-6e50370d-2089-4fa1-9ea9-91baad4de5b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-ffa9f59f-a229-41a6-823b-9e488213b420 + +ACL Test GOT Response: 204 No Content +Openstack-Request-Id: req-6e50370d-2089-4fa1-9ea9-91baad4de5b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 + +API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-eeada24b-1764-4904-8a14-933bbbedbb3a +Openstack-Request-Id: req-0be6de54-f7c3-4a9e-8dfb-a6cb458e4547 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-eeada24b-1764-4904-8a14-933bbbedbb3a +Openstack-Request-Id: req-0be6de54-f7c3-4a9e-8dfb-a6cb458e4547 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f1f96394-09b9-41c3-8c43-a36c1b2414fa +Openstack-Request-Id: req-2baf68da-6365-43a3-84b2-f4da209c0b6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f1f96394-09b9-41c3-8c43-a36c1b2414fa -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-036929c1-4871-4c01-8110-e0445674e59d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-036929c1-4871-4c01-8110-e0445674e59d +Openstack-Request-Id: req-2baf68da-6365-43a3-84b2-f4da209c0b6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7b944919-aadf-4502-a24a-dac682fb68cb +Openstack-Request-Id: req-9d8dbb5d-6c71-4208-915b-3ef9aa4b460b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_331_owner_reader_can_get_node_ports -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_331_owner_reader_can_get_node_ports ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_253_allocations_allocation_id_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_253_allocations_allocation_id_get_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate ... ok +{"history": [{"uuid": "5ee7e071-6810-4791-a819-164e491860fa", "created_at": "2024-01-06T15:36:10.294934+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/5ee7e071-6810-4791-a819-164e491860fa", "rel": "self"}]}]} +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_299_node_history_get_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_299_node_history_get_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_minimum_password_length +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_minimum_password_length ... ok +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_092_nodes_traits_trait_put_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_092_nodes_traits_trait_put_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_332_lessee_reader_can_get_node_port -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_332_lessee_reader_can_get_node_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_300_node_history_get_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_300_node_history_get_member ... ok ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-59505bc0-34b5-4b1b-b1d3-29bc1be9798a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations -GET: /v1/allocations {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-e7a50ae1-3b0f-4b57-aa9a-00c727a8083d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": [{"uuid": "9e76717b-a2fe-4ea4-b7f0-141c4ef4ba3d", "created_at": "2025-02-07T21:35:52.567945+00:00", "updated_at": "2025-02-07T21:35:52.579046+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/9e76717b-a2fe-4ea4-b7f0-141c4ef4ba3d", "rel": "self"}, {"href": "http://localhost/allocations/9e76717b-a2fe-4ea4-b7f0-141c4ef4ba3d", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-e7a50ae1-3b0f-4b57-aa9a-00c727a8083d +Openstack-Request-Id: req-d9d213d3-1529-4dee-9b55-0f43d860323d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": [{"uuid": "9e76717b-a2fe-4ea4-b7f0-141c4ef4ba3d", "created_at": "2025-02-07T21:35:52.567945+00:00", "updated_at": "2025-02-07T21:35:52.579046+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/9e76717b-a2fe-4ea4-b7f0-141c4ef4ba3d", "rel": "self"}, {"href": "http://localhost/allocations/9e76717b-a2fe-4ea4-b7f0-141c4ef4ba3d", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} -API ACL Testing Path get /v1/allocations -GET: /v1/allocations {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/ports +POST: /v1/ports {'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-463a4913-8a59-4e76-84e7-0b5f78ecc00c +Openstack-Request-Id: req-89ce9eb3-b994-4ff2-8f42-054bdcea9f53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-463a4913-8a59-4e76-84e7-0b5f78ecc00c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations -GET: /v1/allocations {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-ee8b2005-fc47-457a-87c7-be565a7a4acc -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": [{"uuid": "5385dd21-4308-4f25-9138-e4b0288cd782", "created_at": "2025-02-07T21:35:52.841632+00:00", "updated_at": "2025-02-07T21:35:52.853192+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/5385dd21-4308-4f25-9138-e4b0288cd782", "rel": "self"}, {"href": "http://localhost/allocations/5385dd21-4308-4f25-9138-e4b0288cd782", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-ee8b2005-fc47-457a-87c7-be565a7a4acc -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": [{"uuid": "5385dd21-4308-4f25-9138-e4b0288cd782", "created_at": "2025-02-07T21:35:52.841632+00:00", "updated_at": "2025-02-07T21:35:52.853192+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/5385dd21-4308-4f25-9138-e4b0288cd782", "rel": "self"}, {"href": "http://localhost/allocations/5385dd21-4308-4f25-9138-e4b0288cd782", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} -API ACL Testing Path get /v1/allocations/63f337a2-cc69-4068-bd01-b3c422531695 -GET: /v1/allocations/63f337a2-cc69-4068-bd01-b3c422531695 {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-3a11e440-a824-46ae-83fc-050e2623f36b +Openstack-Request-Id: req-89ce9eb3-b994-4ff2-8f42-054bdcea9f53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "63f337a2-cc69-4068-bd01-b3c422531695", "created_at": "2025-02-07T21:35:52.993011+00:00", "updated_at": "2025-02-07T21:35:53.005249+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/63f337a2-cc69-4068-bd01-b3c422531695", "rel": "self"}, {"href": "http://localhost/allocations/63f337a2-cc69-4068-bd01-b3c422531695", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c +PATCH: /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-3a11e440-a824-46ae-83fc-050e2623f36b +Openstack-Request-Id: req-016c1239-8da2-4ffb-bb73-b9924df34d2f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "63f337a2-cc69-4068-bd01-b3c422531695", "created_at": "2025-02-07T21:35:52.993011+00:00", "updated_at": "2025-02-07T21:35:53.005249+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/63f337a2-cc69-4068-bd01-b3c422531695", "rel": "self"}, {"href": "http://localhost/allocations/63f337a2-cc69-4068-bd01-b3c422531695", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path get /v1/allocations/d6803f56-d8a0-4321-977e-7ca1c106fab4 -GET: /v1/allocations/d6803f56-d8a0-4321-977e-7ca1c106fab4 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-768992f8-0587-4437-a353-67559ae37e55 +Openstack-Request-Id: req-016c1239-8da2-4ffb-bb73-b9924df34d2f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation d6803f56-d8a0-4321-977e-7ca1c106fab4 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c +PATCH: /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-768992f8-0587-4437-a353-67559ae37e55 +Openstack-Request-Id: req-91a44c72-97a5-40b5-8c37-12528dc6179e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation d6803f56-d8a0-4321-977e-7ca1c106fab4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations/99239d3c-4f47-4439-a8ab-e9992550c9de -GET: /v1/allocations/99239d3c-4f47-4439-a8ab-e9992550c9de {} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_254_allocations_allocation_id_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_254_allocations_allocation_id_get_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_093_nodes_traits_trait_put_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_093_nodes_traits_trait_put_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_333_third_party_admin_cannot_get_ports -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_333_third_party_admin_cannot_get_ports ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection_missing -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection_missing ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_255_allocations_allocation_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_255_allocations_allocation_id_patch_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_094_nodes_traits_trait_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_094_nodes_traits_trait_delete_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_glance -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_glance ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_334_owner_reader_can_get_ports_by_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_334_owner_reader_can_get_ports_by_portgroup ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_256_allocations_allocation_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_256_allocations_allocation_id_patch_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_095_nodes_traits_trait_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_095_nodes_traits_trait_delete_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver_exc -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver_exc ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_335_lessee_reader_can_get_ports_by_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_335_lessee_reader_can_get_ports_by_portgroup ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_096_nodes_traits_trait_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_096_nodes_traits_trait_delete_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_257_allocations_allocation_id_patch_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_257_allocations_allocation_id_patch_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_336_third_party_admin_cannot_get_ports_by_portgroup -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_336_third_party_admin_cannot_get_ports_by_portgroup ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_deprecated -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_deprecated ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_097_nodes_vifs_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_097_nodes_vifs_get_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_258_allocations_allocation_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_258_allocations_allocation_id_delete_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_337_owner_reader_can_list_volume_connectors -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_337_owner_reader_can_list_volume_connectors ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_098_nodes_vifs_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_098_nodes_vifs_get_member ... ok -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7b944919-aadf-4502-a24a-dac682fb68cb +Openstack-Request-Id: req-91a44c72-97a5-40b5-8c37-12528dc6179e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c +PATCH: /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c27e966f-9673-4c58-803d-ab620256500e +Openstack-Request-Id: req-da586aa4-3761-4ccd-bf21-70cf557998e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c27e966f-9673-4c58-803d-ab620256500e +Openstack-Request-Id: req-da586aa4-3761-4ccd-bf21-70cf557998e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-427c6cca-87cf-41d8-8779-18938e3c950f +Openstack-Request-Id: req-de7accab-e610-499e-916a-8e82ac99c80d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-427c6cca-87cf-41d8-8779-18938e3c950f +Openstack-Request-Id: req-de7accab-e610-499e-916a-8e82ac99c80d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports -GET: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7954bc36-b2de-4e26-b1b3-5879504ed608 +Openstack-Request-Id: req-38c9c495-a27c-4037-b842-9f2fcac5f7f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7954bc36-b2de-4e26-b1b3-5879504ed608 +Openstack-Request-Id: req-38c9c495-a27c-4037-b842-9f2fcac5f7f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8c840b2e-d26f-4e4b-bf42-a6ad768300a0 +Openstack-Request-Id: req-d7fc5248-26dc-499e-9a43-f37b2f3b5410 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-8c840b2e-d26f-4e4b-bf42-a6ad768300a0 +Openstack-Request-Id: req-d7fc5248-26dc-499e-9a43-f37b2f3b5410 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"ports": []} -API ACL Testing Path get /v1/portgroups/5810f41c-6585-41fc-b9c9-a94f50d421b5/ports -GET: /v1/portgroups/5810f41c-6585-41fc-b9c9-a94f50d421b5/ports {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-eb9566d0-120d-48aa-b666-da049f7ce7ad +Openstack-Request-Id: req-6fc89c37-6d12-48f5-a73b-fb7846d92089 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_323_third_party_admin_cannot_modify_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_323_third_party_admin_cannot_modify_port ... ok +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_clean ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_324_owner_admin_can_delete_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_324_owner_admin_can_delete_port ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_301_node_history_get_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_301_node_history_get_reader ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_093_nodes_traits_trait_put_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_093_nodes_traits_trait_put_observer ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_deploy ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_302_node_history_get_entry_admin +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_302_node_history_get_entry_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_325_owner_manager_can_delete_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_325_owner_manager_can_delete_port ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_clean ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_094_nodes_traits_trait_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_094_nodes_traits_trait_delete_admin ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_deploy ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_303_node_history_get_entry_member +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_303_node_history_get_entry_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_326_owner_member_cannot_delete_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_326_owner_member_cannot_delete_port ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_095_nodes_traits_trait_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_095_nodes_traits_trait_delete_member ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_clean +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_clean ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed ... ok +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_304_node_history_get_entry_reader +ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_304_node_history_get_entry_reader ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_deploy +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_deploy ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_096_nodes_traits_trait_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_096_nodes_traits_trait_delete_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_327_lessee_admin_cannot_delete_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_327_lessee_admin_cannot_delete_port ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port ... ok +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_cleaning ... ok +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_097_nodes_vifs_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_097_nodes_vifs_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_328_lessee_manager_cannot_delete_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_328_lessee_manager_cannot_delete_port ... ok +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_auth_token_info +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_auth_token_info ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_deploying ... ok +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_098_nodes_vifs_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_098_nodes_vifs_get_member ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info ... ok +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_329_lessee_member_cannot_delete_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_329_lessee_member_cannot_delete_port ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_cleaning ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached ... ok +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_099_nodes_vifs_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_099_nodes_vifs_get_observer ... ok +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_deploying ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid ... ok +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_330_third_party_admin_cannot_delete_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_330_third_party_admin_cannot_delete_port ... ok +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_cleaning ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_100_nodes_vifs_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_100_nodes_vifs_post_admin ... ok +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async ... ok +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_deploying ... ok +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled ... ok ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-eb9566d0-120d-48aa-b666-da049f7ce7ad -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/connectors -GET: /v1/volume/connectors {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-f40c170b-5247-4bd5-bd9a-543a461fd4c1 +Openstack-Request-Id: req-6fc89c37-6d12-48f5-a73b-fb7846d92089 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c +DELETE: /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f40c170b-5247-4bd5-bd9a-543a461fd4c1 +Openstack-Request-Id: req-3bab70ad-894e-4653-990c-9e48ec668bae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/volume/connectors -GET: /v1/volume/connectors {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7c0d87ef-751b-437f-bb7a-225a6fc8a3c1 +Openstack-Request-Id: req-3bab70ad-894e-4653-990c-9e48ec668bae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_259_allocations_allocation_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_259_allocations_allocation_id_delete_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_338_lessee_reader_can_list_volume_connectors -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_338_lessee_reader_can_list_volume_connectors ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_099_nodes_vifs_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_099_nodes_vifs_get_observer ... ok -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c +DELETE: /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-30e09d47-b57e-4856-ac25-93c48e0252ce +Openstack-Request-Id: req-2ad2c753-7ab9-4ebe-8a41-72d7ed1cc6a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "99239d3c-4f47-4439-a8ab-e9992550c9de", "created_at": "2025-02-07T21:35:53.603972+00:00", "updated_at": "2025-02-07T21:35:53.635532+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/99239d3c-4f47-4439-a8ab-e9992550c9de", "rel": "self"}, {"href": "http://localhost/allocations/99239d3c-4f47-4439-a8ab-e9992550c9de", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-30e09d47-b57e-4856-ac25-93c48e0252ce +Openstack-Request-Id: req-2ad2c753-7ab9-4ebe-8a41-72d7ed1cc6a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "99239d3c-4f47-4439-a8ab-e9992550c9de", "created_at": "2025-02-07T21:35:53.603972+00:00", "updated_at": "2025-02-07T21:35:53.635532+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/99239d3c-4f47-4439-a8ab-e9992550c9de", "rel": "self"}, {"href": "http://localhost/allocations/99239d3c-4f47-4439-a8ab-e9992550c9de", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path patch /v1/allocations/995359f5-e574-4835-8830-c5c2d26f2a7e -PATCH: /v1/allocations/995359f5-e574-4835-8830-c5c2d26f2a7e [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c +DELETE: /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-eb46d4dd-16a2-44e7-b6ed-797204b8f3eb +Openstack-Request-Id: req-96ac2564-5265-4ca0-bf24-cdb04dee1b4c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "995359f5-e574-4835-8830-c5c2d26f2a7e", "created_at": "2025-02-07T21:35:54.633397+00:00", "updated_at": "2025-02-07T21:35:54.819889+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/995359f5-e574-4835-8830-c5c2d26f2a7e", "rel": "self"}, {"href": "http://localhost/allocations/995359f5-e574-4835-8830-c5c2d26f2a7e", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-eb46d4dd-16a2-44e7-b6ed-797204b8f3eb +Openstack-Request-Id: req-96ac2564-5265-4ca0-bf24-cdb04dee1b4c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "995359f5-e574-4835-8830-c5c2d26f2a7e", "created_at": "2025-02-07T21:35:54.633397+00:00", "updated_at": "2025-02-07T21:35:54.819889+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/995359f5-e574-4835-8830-c5c2d26f2a7e", "rel": "self"}, {"href": "http://localhost/allocations/995359f5-e574-4835-8830-c5c2d26f2a7e", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path patch /v1/allocations/a48d285a-7269-494d-90f0-4a42242e01e1 -PATCH: /v1/allocations/a48d285a-7269-494d-90f0-4a42242e01e1 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c3867060-f33c-4285-a735-60aa46d0e150 +Openstack-Request-Id: req-cc7b2251-9511-47d0-b720-e95f2cd32383 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation a48d285a-7269-494d-90f0-4a42242e01e1 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c3867060-f33c-4285-a735-60aa46d0e150 +Openstack-Request-Id: req-cc7b2251-9511-47d0-b720-e95f2cd32383 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation a48d285a-7269-494d-90f0-4a42242e01e1 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/ff6c729a-99a9-478e-9d13-5bd58eaf8013 -PATCH: /v1/allocations/ff6c729a-99a9-478e-9d13-5bd58eaf8013 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dafaf34b-abbc-4600-9603-331985004676 +Openstack-Request-Id: req-0a49a803-5d04-44f6-a828-ee8ae6253f64 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dafaf34b-abbc-4600-9603-331985004676 +Openstack-Request-Id: req-0a49a803-5d04-44f6-a828-ee8ae6253f64 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/fa93c4a7-575a-4f39-b18d-c7fd284fa133 -DELETE: /v1/allocations/fa93c4a7-575a-4f39-b18d-c7fd284fa133 -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c713de94-9590-4ddc-a389-69293b864c2b +Openstack-Request-Id: req-314e9032-e2cf-4a70-9ed4-199913986176 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c713de94-9590-4ddc-a389-69293b864c2b +Openstack-Request-Id: req-314e9032-e2cf-4a70-9ed4-199913986176 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/0fd17156-8b80-4f9f-86ec-d4e9dd0cf0e2 -DELETE: /v1/allocations/0fd17156-8b80-4f9f-86ec-d4e9dd0cf0e2 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0d15ee2e-7f5c-40b9-8976-0223566dfec3 +Openstack-Request-Id: req-b31e680a-0cc1-4af4-9df0-4c7b85b54137 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 0fd17156-8b80-4f9f-86ec-d4e9dd0cf0e2 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0d15ee2e-7f5c-40b9-8976-0223566dfec3 +Openstack-Request-Id: req-b31e680a-0cc1-4af4-9df0-4c7b85b54137 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 0fd17156-8b80-4f9f-86ec-d4e9dd0cf0e2 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/73e5fe04-1b84-495a-89a0-75914bf940eb -DELETE: /v1/allocations/73e5fe04-1b84-495a-89a0-75914bf940eb -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-82a78e2e-e4e2-43cc-a013-291e649c2b45 +Openstack-Request-Id: req-0dc0ba7d-2b7e-4fa5-b301-a7aba732bf23 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_260_allocations_allocation_id_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_260_allocations_allocation_id_delete_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_339_third_party_admin_cannot_get_connector_list -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_339_third_party_admin_cannot_get_connector_list ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_100_nodes_vifs_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_100_nodes_vifs_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_340_owner_admin_can_post_volume_connector -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_340_owner_admin_can_post_volume_connector ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_261_nodes_allocation_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_261_nodes_allocation_get_admin ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_262_nodes_allocation_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_262_nodes_allocation_get_member ... ok +{"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"}]}]} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_331_owner_reader_can_get_node_ports +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_331_owner_reader_can_get_node_ports ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_101_nodes_vifs_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_101_nodes_vifs_post_member ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_341_owner_manager_can_post_volume_connector -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_341_owner_manager_can_post_volume_connector ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_cleaning ... ok +ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive +ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_deploying ... ok +ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive_in_swift +ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive_in_swift ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_102_nodes_vifs_post_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_102_nodes_vifs_post_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_342_lessee_admin_cannot_post_volume_connector -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_342_lessee_admin_cannot_post_volume_connector ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_263_nodes_allocation_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_263_nodes_allocation_get_observer ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_343_lessee_manager_cannot_post_volume_connector -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_343_lessee_manager_cannot_post_volume_connector ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_264_nodes_allocation_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_264_nodes_allocation_delete_admin ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_insecure_heartbeat +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_insecure_heartbeat ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-84fd20ba-dd55-40f1-b69e-e3d7f65c40d3 +Openstack-Request-Id: req-93ec31a1-8db0-45ac-988b-fb9b20393a61 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47034,7 +48034,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-04df9f54-8bd3-45cc-b216-755136ed8b3d +Openstack-Request-Id: req-6185a6ab-ddbd-4a61-8b2f-7eedfbfc77a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47043,7 +48043,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-23e08ae1-c738-4683-9751-b1e3155ce407 +Openstack-Request-Id: req-16a832e1-c6a6-45c4-87c4-03e953561d2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47052,7 +48052,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fe7eeac2-9fbc-447a-a69f-07356d43ec44 +Openstack-Request-Id: req-48c39cec-83f0-4251-a275-203395b5538e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47061,7 +48061,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6aae42ef-57a9-4fdc-9048-711acc153826 +Openstack-Request-Id: req-6dd03db8-4a90-4664-ad69-23c70abbb7e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47070,7 +48070,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9309acb7-10c4-4a29-8a1f-d52243e2763e +Openstack-Request-Id: req-bb7fe32c-8cd0-437a-8ce8-cc4fb743f3a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47079,7 +48079,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-64a7fe07-de60-4691-ba29-c83cdbc26603 +Openstack-Request-Id: req-6abb4a39-e575-46d9-a884-359ec28005f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47088,7 +48088,7 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ed5574ab-c960-4998-9d87-4a0f62c0dc13 +Openstack-Request-Id: req-368bbd87-0419-46b1-8884-e6edeb1374ec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47097,7 +48097,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3f3ac94d-1d44-4c1a-8319-781d9705b201 +Openstack-Request-Id: req-39d6760e-2e93-4388-b3ef-ed96aad5f123 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47106,7 +48106,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0a6f9303-c262-4264-a374-953cb17d3dbc +Openstack-Request-Id: req-984a8405-1cf4-4902-8750-719c8d24ed27 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47115,7 +48115,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1573a76a-ea47-45aa-9275-a5d110543950 +Openstack-Request-Id: req-14b996ac-df13-4d61-9083-43476cef8364 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47124,7 +48124,7 @@ POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c7e18bc8-27cc-416f-84d4-e1c2930ba5d6 +Openstack-Request-Id: req-9805890f-7b24-47f5-9d89-5f9714915d3f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47133,7 +48133,7 @@ POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-386d59d0-386a-4dab-b85e-3568b6b0d800 +Openstack-Request-Id: req-ee4e7dbb-5470-4be0-b5f2-d82e9a0077de X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47142,7 +48142,7 @@ POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fe76875c-729a-4f45-8e03-404fe877b22c +Openstack-Request-Id: req-6afd2497-c257-493f-840d-00aad9de5db8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47151,23 +48151,385 @@ DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_103_nodes_vifs_node_vif_ident_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_103_nodes_vifs_node_vif_ident_delete_admin ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning_deploying ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_source_path +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_source_path ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_104_nodes_vifs_node_vif_ident_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_104_nodes_vifs_node_vif_ident_delete_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_cleaning ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config_not_anaconda_boot +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config_not_anaconda_boot ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_port_and_portgroup +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_port_and_portgroup ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_332_lessee_reader_can_get_node_port +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_332_lessee_reader_can_get_node_port ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_105_nodes_vifs_node_vif_ident_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_105_nodes_vifs_node_vif_ident_delete_observer ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_has_additional_variables +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_has_additional_variables ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_cleaning ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail ... ok +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_missing_variable +ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_missing_variable ... ok +ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier +ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_333_third_party_admin_cannot_get_ports +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_333_third_party_admin_cannot_get_ports ... ok +ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier +ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_deploying ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_106_nodes_management_indicators_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_106_nodes_management_indicators_get_admin ... ok +ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id +ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id ... ok +ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier +ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_cleaning ... ok +ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier +ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file ... ok +ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id +ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_334_owner_reader_can_get_ports_by_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_334_owner_reader_can_get_ports_by_portgroup ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_deploying ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_107_nodes_management_indicators_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_107_nodes_management_indicators_get_member ... ok +ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled +ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning ... ok +ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled +ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_335_lessee_reader_can_get_ports_by_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_335_lessee_reader_can_get_ports_by_portgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_108_nodes_management_indicators_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_108_nodes_management_indicators_get_observer ... ok +ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics +ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_deploying ... ok +ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link +ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link ... ok +ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST +ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_109_nodes_management_indicators_component_get_allow +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.' +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_336_third_party_admin_cannot_get_ports_by_portgroup +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_336_third_party_admin_cannot_get_ports_by_portgroup ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_110_nodes_management_indicators_component_ind_ident_get_allow +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.' +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_337_owner_reader_can_list_volume_connectors +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_337_owner_reader_can_list_volume_connectors ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_cleaning ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_111_nodes_management_indicators_component_ind_ident_put_allow +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.' +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool ... ok +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-0dc0ba7d-2b7e-4fa5-b301-a7aba732bf23 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-4187113d-1b3a-445b-ba5e-3562b18ec426 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-4187113d-1b3a-445b-ba5e-3562b18ec426 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]}]} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-75859516-78ed-45f1-8651-eac821296484 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-75859516-78ed-45f1-8651-eac821296484 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports +GET: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-6792aba0-78f4-41f7-8ee9-f3c5af7a92ce +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"ports": []} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-6792aba0-78f4-41f7-8ee9-f3c5af7a92ce +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"ports": []} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-8b273cf1-7502-481b-96af-2f47782c96a5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"ports": []} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-8b273cf1-7502-481b-96af-2f47782c96a5 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"ports": []} +API ACL Testing Path get /v1/portgroups/5810f41c-6585-41fc-b9c9-a94f50d421b5/ports +GET: /v1/portgroups/5810f41c-6585-41fc-b9c9-a94f50d421b5/ports {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-3e7c2f1e-d0f0-4e27-beb6-6f9b8596c349 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-3e7c2f1e-d0f0-4e27-beb6-6f9b8596c349 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/connectors +GET: /v1/volume/connectors {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-183a6466-aa44-45e1-9832-69f0d7cec437 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]} +ACL Test GOT Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-183a6466-aa44-45e1-9832-69f0d7cec437 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]} +API ACL Testing Path get /v1/volume/connectors +GET: /v1/volume/connectors {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-c2e7466a-8bbe-4982-80c8-23492aa219e9 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.80 +{"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"}]} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_338_lessee_reader_can_list_volume_connectors +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_338_lessee_reader_can_list_volume_connectors ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_with_mdns +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_with_mdns ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_112_portgroups_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_112_portgroups_get_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_339_third_party_admin_cannot_get_connector_list +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_339_third_party_admin_cannot_get_connector_list ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_default +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_default ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_113_portgroups_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_113_portgroups_get_member ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_340_owner_admin_can_post_volume_connector +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_340_owner_admin_can_post_volume_connector ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_hostname +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_hostname ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_114_portgroups_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_114_portgroups_get_observer ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_341_owner_manager_can_post_volume_connector +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_341_owner_manager_can_post_volume_connector ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv6 +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv6 ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_115_portgroups_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_115_portgroups_post_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_no_free_ports +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_no_free_ports ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_dbapi_single_call +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_dbapi_single_call ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_range_retry +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_range_retry ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_342_lessee_admin_cannot_post_volume_connector +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_342_lessee_admin_cannot_post_volume_connector ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_cleaning +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_cleaning ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_success +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_success ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url ... ok +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_deploying +ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_deploying ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp ... ok +ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_343_lessee_manager_cannot_post_volume_connector +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_343_lessee_manager_cannot_post_volume_connector ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync ... ok +ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue +ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_invalid_console_port_range +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_invalid_console_port_range ... ok +ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage +ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_116_portgroups_post_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_116_portgroups_post_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_344_third_party_admin_cannot_post_volume_connector ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_344_third_party_admin_cannot_post_volume_connector ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_265_nodes_allocation_delete_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_265_nodes_allocation_delete_member ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_105_nodes_vifs_node_vif_ident_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_105_nodes_vifs_node_vif_ident_delete_observer ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none ... ok +ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox +ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_notstaged +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_notstaged ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_117_portgroups_post_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_117_portgroups_post_observer ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_swift_fails +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_swift_fails ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_file +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_file ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid ... ok ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7c0d87ef-751b-437f-bb7a-225a6fc8a3c1 +Openstack-Request-Id: req-c2e7466a-8bbe-4982-80c8-23492aa219e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47176,14 +48538,14 @@ GET: /v1/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d3112d53-4167-4850-9feb-0ffb1a7bc194 +Openstack-Request-Id: req-810ff93d-4de9-4a4f-9d89-4fe256e46265 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"connectors": []} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d3112d53-4167-4850-9feb-0ffb1a7bc194 +Openstack-Request-Id: req-810ff93d-4de9-4a4f-9d89-4fe256e46265 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47192,50 +48554,50 @@ POST: /v1/volume/connectors {'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/915aad31-1746-420b-b92a-c5d67e2ef020 -Openstack-Request-Id: req-9cdf1673-4361-4575-9dbd-4f4bd35df102 +Location: http://localhost/v1/volume/connectors/b255a02c-d49e-496e-ac0b-f5d66cb0521f +Openstack-Request-Id: req-aa826ca2-1ac8-4938-8944-e36a91b282b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "915aad31-1746-420b-b92a-c5d67e2ef020", "created_at": "2025-02-07T21:36:01.508036+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/915aad31-1746-420b-b92a-c5d67e2ef020", "rel": "self"}, {"href": "http://localhost/volume/connectors/915aad31-1746-420b-b92a-c5d67e2ef020", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +{"uuid": "b255a02c-d49e-496e-ac0b-f5d66cb0521f", "created_at": "2024-01-06T15:36:14.482285+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/b255a02c-d49e-496e-ac0b-f5d66cb0521f", "rel": "self"}, {"href": "http://localhost/volume/connectors/b255a02c-d49e-496e-ac0b-f5d66cb0521f", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/connectors/915aad31-1746-420b-b92a-c5d67e2ef020 -Openstack-Request-Id: req-9cdf1673-4361-4575-9dbd-4f4bd35df102 +Location: http://localhost/v1/volume/connectors/b255a02c-d49e-496e-ac0b-f5d66cb0521f +Openstack-Request-Id: req-aa826ca2-1ac8-4938-8944-e36a91b282b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "915aad31-1746-420b-b92a-c5d67e2ef020", "created_at": "2025-02-07T21:36:01.508036+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/915aad31-1746-420b-b92a-c5d67e2ef020", "rel": "self"}, {"href": "http://localhost/volume/connectors/915aad31-1746-420b-b92a-c5d67e2ef020", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +{"uuid": "b255a02c-d49e-496e-ac0b-f5d66cb0521f", "created_at": "2024-01-06T15:36:14.482285+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/b255a02c-d49e-496e-ac0b-f5d66cb0521f", "rel": "self"}, {"href": "http://localhost/volume/connectors/b255a02c-d49e-496e-ac0b-f5d66cb0521f", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} API ACL Testing Path post /v1/volume/connectors POST: /v1/volume/connectors {'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/7452ff29-c6e5-4272-a575-73e12c0ed79d -Openstack-Request-Id: req-2b1d35e5-623d-4b3a-a3cb-04ebd950e735 +Location: http://localhost/v1/volume/connectors/c045de45-88fe-401e-bec8-578f23114dde +Openstack-Request-Id: req-6a7ff6d7-6142-49ff-bed0-72f4e9fabebf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "7452ff29-c6e5-4272-a575-73e12c0ed79d", "created_at": "2025-02-07T21:36:01.663124+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/7452ff29-c6e5-4272-a575-73e12c0ed79d", "rel": "self"}, {"href": "http://localhost/volume/connectors/7452ff29-c6e5-4272-a575-73e12c0ed79d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +{"uuid": "c045de45-88fe-401e-bec8-578f23114dde", "created_at": "2024-01-06T15:36:14.665423+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/c045de45-88fe-401e-bec8-578f23114dde", "rel": "self"}, {"href": "http://localhost/volume/connectors/c045de45-88fe-401e-bec8-578f23114dde", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/connectors/7452ff29-c6e5-4272-a575-73e12c0ed79d -Openstack-Request-Id: req-2b1d35e5-623d-4b3a-a3cb-04ebd950e735 +Location: http://localhost/v1/volume/connectors/c045de45-88fe-401e-bec8-578f23114dde +Openstack-Request-Id: req-6a7ff6d7-6142-49ff-bed0-72f4e9fabebf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "7452ff29-c6e5-4272-a575-73e12c0ed79d", "created_at": "2025-02-07T21:36:01.663124+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/7452ff29-c6e5-4272-a575-73e12c0ed79d", "rel": "self"}, {"href": "http://localhost/volume/connectors/7452ff29-c6e5-4272-a575-73e12c0ed79d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +{"uuid": "c045de45-88fe-401e-bec8-578f23114dde", "created_at": "2024-01-06T15:36:14.665423+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/c045de45-88fe-401e-bec8-578f23114dde", "rel": "self"}, {"href": "http://localhost/volume/connectors/c045de45-88fe-401e-bec8-578f23114dde", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} API ACL Testing Path post /v1/volume/connectors POST: /v1/volume/connectors {'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-14ed8ef4-e246-48d4-ae6f-5114c028206f +Openstack-Request-Id: req-11c466d6-4375-4b40-a4e7-31a98bc962e8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-14ed8ef4-e246-48d4-ae6f-5114c028206f +Openstack-Request-Id: req-11c466d6-4375-4b40-a4e7-31a98bc962e8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47244,14 +48606,14 @@ POST: /v1/volume/connectors {'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-296fd1f3-7422-4309-b288-a24323f9e445 +Openstack-Request-Id: req-7d068aa7-a401-44a8-9b7b-f7a92fbca0c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-296fd1f3-7422-4309-b288-a24323f9e445 +Openstack-Request-Id: req-7d068aa7-a401-44a8-9b7b-f7a92fbca0c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47260,354 +48622,369 @@ POST: /v1/volume/connectors {'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-61ddb02a-e82f-41ce-aad8-a9d04e6ed55d +Openstack-Request-Id: req-5eba7db6-797d-447d-b2b0-d298708c3115 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-61ddb02a-e82f-41ce-aad8-a9d04e6ed55d +Openstack-Request-Id: req-5eba7db6-797d-447d-b2b0-d298708c3115 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_266_nodes_allocation_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_266_nodes_allocation_delete_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_345_owner_reader_can_get_volume_connector ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_345_owner_reader_can_get_volume_connector ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_106_nodes_management_indicators_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_106_nodes_management_indicators_get_admin ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal ... ok -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-82a78e2e-e4e2-43cc-a013-291e649c2b45 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-7ac72fa4-0afc-43d1-8fd2-18fc40281c72 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "00e0c4cf-ca30-474b-9f8e-851be9a8b1b0", "created_at": "2025-02-07T21:36:01.348143+00:00", "updated_at": "2025-02-07T21:36:01.370750+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/00e0c4cf-ca30-474b-9f8e-851be9a8b1b0", "rel": "self"}, {"href": "http://localhost/allocations/00e0c4cf-ca30-474b-9f8e-851be9a8b1b0", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-7ac72fa4-0afc-43d1-8fd2-18fc40281c72 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "00e0c4cf-ca30-474b-9f8e-851be9a8b1b0", "created_at": "2025-02-07T21:36:01.348143+00:00", "updated_at": "2025-02-07T21:36:01.370750+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/00e0c4cf-ca30-474b-9f8e-851be9a8b1b0", "rel": "self"}, {"href": "http://localhost/allocations/00e0c4cf-ca30-474b-9f8e-851be9a8b1b0", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_http +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_http ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_118_portgroups_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_118_portgroups_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_invalid +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_invalid ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor ... ok +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_swift +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_swift ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_119_portgroups_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_119_portgroups_detail_get_member ... ok +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_346_lessee_reader_can_get_volume_connector +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_346_lessee_reader_can_get_volume_connector ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_get_swift_temp_url +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_get_swift_temp_url ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http ... ok +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_120_portgroups_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_120_portgroups_detail_get_observer ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile_fails +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile_fails ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names ... ok +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_local_external +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_local_external ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_347_third_party_admin_cannot_get_volume_connector +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_347_third_party_admin_cannot_get_volume_connector ... ok +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fce67c10-3fc5-43f4-9fca-44d90084f212 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-fce67c10-3fc5-43f4-9fca-44d90084f212 +Openstack-Request-Id: req-e4ed359c-788b-42aa-9ad6-3572fd78d675 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-2cbacf9a-a4b7-45e4-bbae-f89d2af7e941 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "4a688d99-5cd4-4bb8-ac5d-9e5dd60f4638", "created_at": "2025-02-07T21:36:01.736417+00:00", "updated_at": "2025-02-07T21:36:01.746877+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/4a688d99-5cd4-4bb8-ac5d-9e5dd60f4638", "rel": "self"}, {"href": "http://localhost/allocations/4a688d99-5cd4-4bb8-ac5d-9e5dd60f4638", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 +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-2cbacf9a-a4b7-45e4-bbae-f89d2af7e941 +Openstack-Request-Id: req-8483fa65-5030-4343-9b60-dbde221a2d70 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "4a688d99-5cd4-4bb8-ac5d-9e5dd60f4638", "created_at": "2025-02-07T21:36:01.736417+00:00", "updated_at": "2025-02-07T21:36:01.746877+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/4a688d99-5cd4-4bb8-ac5d-9e5dd60f4638", "rel": "self"}, {"href": "http://localhost/allocations/4a688d99-5cd4-4bb8-ac5d-9e5dd60f4638", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} -API ACL Testing Path delete /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 +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-94699685-1e54-4e9e-8515-6eb2bcd206f4 +Openstack-Request-Id: req-2ac20b40-bc37-44f4-860a-6b969b310f19 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-94699685-1e54-4e9e-8515-6eb2bcd206f4 +Openstack-Request-Id: req-46f969dc-4fbf-450b-8d16-46c52615f5b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8a1d750c-9be2-4d2f-b919-2f70576ce377 +Openstack-Request-Id: req-8fc96af8-9029-4453-9670-c86535dec12c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8a1d750c-9be2-4d2f-b919-2f70576ce377 +Openstack-Request-Id: req-f8328b9a-e892-42ca-9f15-d346078cc3cf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation -DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups +GET: /v1/portgroups {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-f67eb7d3-5eb1-4975-b76e-4db87e18446a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-f67eb7d3-5eb1-4975-b76e-4db87e18446a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/deploy_templates -POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_267_deploy_templates_post_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_267_deploy_templates_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_346_lessee_reader_can_get_volume_connector -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_346_lessee_reader_can_get_volume_connector ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_107_nodes_management_indicators_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_107_nodes_management_indicators_get_member ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_port_and_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_port_and_portgroup ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_268_deploy_templates_post_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_268_deploy_templates_post_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_347_third_party_admin_cannot_get_volume_connector -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_347_third_party_admin_cannot_get_volume_connector ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_108_nodes_management_indicators_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_108_nodes_management_indicators_get_observer ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_inspection_network -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_inspection_network ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect" -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_348_lessee_member_cannot_patch_volume_connectors -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_348_lessee_member_cannot_patch_volume_connectors ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_109_nodes_management_indicators_component_get_allow -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.' -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_269_deploy_templates_post_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_269_deploy_templates_post_observer ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_110_nodes_management_indicators_component_ind_ident_get_allow -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.' -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_349_owner_admin_can_patch_volume_connectors -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_349_owner_admin_can_patch_volume_connectors ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_270_deploy_templates_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_270_deploy_templates_get_admin ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_node_network_data -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_node_network_data ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_111_nodes_management_indicators_component_ind_ident_put_allow -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.' -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_271_deploy_templates_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_271_deploy_templates_get_member ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_350_owner_manager_can_patch_volume_connectors -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_350_owner_manager_can_patch_volume_connectors ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_112_portgroups_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_112_portgroups_get_admin ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect" -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect" -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_272_deploy_templates_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_272_deploy_templates_get_observer ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_113_portgroups_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_113_portgroups_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_351_lessee_admin_cannot_patch_volume_connectors -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_351_lessee_admin_cannot_patch_volume_connectors ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_inspection_network -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_inspection_network ... ok -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/deploy_templates/91d9ca24-1c65-4f7c-9c25-ed9936c86359 -Openstack-Request-Id: req-31ef51f1-56f4-4547-8d93-a0787f534bb4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "91d9ca24-1c65-4f7c-9c25-ed9936c86359", "created_at": "2025-02-07T21:36:02.465387+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/91d9ca24-1c65-4f7c-9c25-ed9936c86359", "rel": "self"}, {"href": "http://localhost/deploy_templates/91d9ca24-1c65-4f7c-9c25-ed9936c86359", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} -ACL Test GOT Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/deploy_templates/91d9ca24-1c65-4f7c-9c25-ed9936c86359 -Openstack-Request-Id: req-31ef51f1-56f4-4547-8d93-a0787f534bb4 +Openstack-Request-Id: req-b87b6eb6-7aa2-403d-bfbd-e86216525bd2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "91d9ca24-1c65-4f7c-9c25-ed9936c86359", "created_at": "2025-02-07T21:36:02.465387+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/91d9ca24-1c65-4f7c-9c25-ed9936c86359", "rel": "self"}, {"href": "http://localhost/deploy_templates/91d9ca24-1c65-4f7c-9c25-ed9936c86359", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} -API ACL Testing Path post /v1/deploy_templates -POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups +GET: /v1/portgroups {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2c46bc48-ee35-4e12-86e8-5146c5896952 +Openstack-Request-Id: req-225d580c-fd77-4105-a5c6-f760d4a68695 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-2c46bc48-ee35-4e12-86e8-5146c5896952 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/deploy_templates -POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups +GET: /v1/portgroups {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d0a2face-3251-462b-8ae2-61b7be337265 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-d0a2face-3251-462b-8ae2-61b7be337265 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/deploy_templates -GET: /v1/deploy_templates {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-bfb7f001-83f0-4371-891d-b365fb046fa5 +Openstack-Request-Id: req-1c406e3b-a844-485d-a9bb-1aa447f07ae5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"deploy_templates": [{"uuid": "ab36f1a4-725f-45da-b20b-8a627f14ed5e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/ab36f1a4-725f-45da-b20b-8a627f14ed5e", "rel": "self"}, {"href": "http://localhost/deploy_templates/ab36f1a4-725f-45da-b20b-8a627f14ed5e", "rel": "bookmark"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/portgroups +POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bfb7f001-83f0-4371-891d-b365fb046fa5 +Openstack-Request-Id: req-0f6ae9d6-9e94-44ae-89ea-73e8506ec2fb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"deploy_templates": [{"uuid": "ab36f1a4-725f-45da-b20b-8a627f14ed5e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/ab36f1a4-725f-45da-b20b-8a627f14ed5e", "rel": "self"}, {"href": "http://localhost/deploy_templates/ab36f1a4-725f-45da-b20b-8a627f14ed5e", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/deploy_templates -GET: /v1/deploy_templates {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/portgroups +POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bc69ab88-d0cc-45b7-9dd9-e3774b853a86 +Openstack-Request-Id: req-cb8cc925-3077-4c3d-8aee-a2b8182e8d4e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/portgroups +POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-bc69ab88-d0cc-45b7-9dd9-e3774b853a86 +Openstack-Request-Id: req-4178b14d-7033-4c07-81e2-1d21492064c3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/deploy_templates -GET: /v1/deploy_templates {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/detail +GET: /v1/portgroups/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-946004ed-e4c0-450b-8428-0df57344d8cc +Openstack-Request-Id: req-b5cc8ad0-eabe-41ef-b309-c0b57fe7eb77 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"deploy_templates": [{"uuid": "8195d926-0f78-45e7-8653-a677d1f527bc", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/8195d926-0f78-45e7-8653-a677d1f527bc", "rel": "self"}, {"href": "http://localhost/deploy_templates/8195d926-0f78-45e7-8653-a677d1f527bc", "rel": "bookmark"}]}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/detail +GET: /v1/portgroups/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-946004ed-e4c0-450b-8428-0df57344d8cc +Openstack-Request-Id: req-28e0891c-d783-4641-bd66-bd6e7a7c97a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"deploy_templates": [{"uuid": "8195d926-0f78-45e7-8653-a677d1f527bc", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/8195d926-0f78-45e7-8653-a677d1f527bc", "rel": "self"}, {"href": "http://localhost/deploy_templates/8195d926-0f78-45e7-8653-a677d1f527bc", "rel": "bookmark"}]}]} -API ACL Testing Path get /v1/deploy_templates/7cee38ba-d0d2-4f8a-a8fb-5932ebc45ea7 -GET: /v1/deploy_templates/7cee38ba-d0d2-4f8a-a8fb-5932ebc45ea7 {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/detail +GET: /v1/portgroups/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-9f0fdd0b-d9e9-43c3-95a7-84f0c9aa5c66 +Openstack-Request-Id: req-5be27e07-7137-442a-abe0-fb8d721a2879 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "7cee38ba-d0d2-4f8a-a8fb-5932ebc45ea7", "created_at": "2025-02-07T21:36:07.725587+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/7cee38ba-d0d2-4f8a-a8fb-5932ebc45ea7", "rel": "self"}, {"href": "http://localhost/deploy_templates/7cee38ba-d0d2-4f8a-a8fb-5932ebc45ea7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_273_deploy_templates_deploy_template_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_273_deploy_templates_deploy_template_id_get_admin ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_swift +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_swift ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_121_portgroups_portgroup_ident_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_121_portgroups_portgroup_ident_get_admin ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args ... ok +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_missing +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_missing ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_not_string +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_not_string ... ok +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_122_portgroups_portgroup_ident_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_122_portgroups_portgroup_ident_get_member ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_348_lessee_member_cannot_patch_volume_connectors +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_348_lessee_member_cannot_patch_volume_connectors ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_not_list +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_not_list ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_source_not_known +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_source_not_known ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled ... ok +ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting +ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_unknown_key +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_unknown_key ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_123_portgroups_portgroup_ident_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_123_portgroups_portgroup_ident_get_observer ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_349_owner_admin_can_patch_volume_connectors +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_349_owner_admin_can_patch_volume_connectors ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_missing +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_missing ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_not_string +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_not_string ... ok +ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode +ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode ... ok +/usr/lib/python3/dist-packages/jsonschema/validators.py:1074: 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) +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_wait_not_int +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_wait_not_int ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_124_portgroups_portgroup_ident_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_124_portgroups_portgroup_ident_patch_admin ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_350_owner_manager_can_patch_volume_connectors +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_350_owner_manager_can_patch_volume_connectors ... ok +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_mismatch +ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_mismatch ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_no_enabled_interfaces +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_no_enabled_interfaces ... ok +ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid +ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_125_portgroups_portgroup_ident_patch_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_125_portgroups_portgroup_ident_patch_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_bios +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_bios ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console ... ok +ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_no_change +ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_no_change ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback_bios +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback_bios ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_351_lessee_admin_cannot_patch_volume_connectors +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_351_lessee_admin_cannot_patch_volume_connectors ... ok +ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_existing +ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_existing ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_clears_conductor_locks +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_clears_conductor_locks ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_126_portgroups_portgroup_ident_patch_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_126_portgroups_portgroup_ident_patch_observer ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_other_arch +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_other_arch ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_uefi +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_uefi ... ok +ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_new +ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_new ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_uefi +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_uefi ... ok +ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over +ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1ec57fed-fb63-42f9-a717-5a28e2799e6d +Openstack-Request-Id: req-1e13bdb9-9c3d-417d-8737-36e27b784832 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:36:02.148039+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:36:15.188144+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"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1ec57fed-fb63-42f9-a717-5a28e2799e6d +Openstack-Request-Id: req-1e13bdb9-9c3d-417d-8737-36e27b784832 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:36:02.148039+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:36:15.188144+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"} API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e23e422a-fd0b-4d2f-b557-c0959ad7d5ed +Openstack-Request-Id: req-d5dd8fb2-3f57-472b-bf7b-c871294d766c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:36:02.414300+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:36:15.351352+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"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e23e422a-fd0b-4d2f-b557-c0959ad7d5ed +Openstack-Request-Id: req-d5dd8fb2-3f57-472b-bf7b-c871294d766c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:36:02.414300+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:36:15.351352+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"} API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6240d5ab-1fba-4665-a8eb-0761d6d9087a +Openstack-Request-Id: req-107957f8-e2f6-4be5-ae26-a3ddca8484c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6240d5ab-1fba-4665-a8eb-0761d6d9087a +Openstack-Request-Id: req-107957f8-e2f6-4be5-ae26-a3ddca8484c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47616,14 +48993,14 @@ PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ab84357e-3b7c-4d30-964d-0932f3488caa +Openstack-Request-Id: req-24f18188-8b2f-4ed0-9507-b4de617b138e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ab84357e-3b7c-4d30-964d-0932f3488caa +Openstack-Request-Id: req-24f18188-8b2f-4ed0-9507-b4de617b138e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47632,14 +49009,14 @@ PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cccea39b-d087-4247-ab5e-8e681cc3b35a +Openstack-Request-Id: req-89829051-135a-41b9-82bd-bd81701352a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-cccea39b-d087-4247-ab5e-8e681cc3b35a +Openstack-Request-Id: req-89829051-135a-41b9-82bd-bd81701352a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47648,14 +49025,14 @@ PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-33256eae-33c0-4d78-a88f-41f25034915a +Openstack-Request-Id: req-122a57a0-c70a-4e6c-8e8e-60cc056afa8c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-33256eae-33c0-4d78-a88f-41f25034915a +Openstack-Request-Id: req-122a57a0-c70a-4e6c-8e8e-60cc056afa8c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -47664,366 +49041,379 @@ PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-18e47142-7fb5-4fc5-8f07-a33761738621 +Openstack-Request-Id: req-6d59bf84-a478-42dd-ac0b-92b2330b8b42 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-18e47142-7fb5-4fc5-8f07-a33761738621 +Openstack-Request-Id: req-6d59bf84-a478-42dd-ac0b-92b2330b8b42 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_114_portgroups_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_114_portgroups_get_observer ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_127_portgroups_portgroup_ident_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_127_portgroups_portgroup_ident_delete_admin ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_352_lessee_manager_can_patch_volume_connectors ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_352_lessee_manager_can_patch_volume_connectors ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_member ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_115_portgroups_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_115_portgroups_post_admin ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect" -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_observer ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_128_portgroups_portgroup_ident_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_128_portgroups_portgroup_ident_delete_member ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none_bios +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none_bios ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_353_owner_member_can_patch_volume_connectors ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_353_owner_member_can_patch_volume_connectors ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect" -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_116_portgroups_post_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_116_portgroups_post_member ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_276_deploy_templates_deploy_template_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_276_deploy_templates_deploy_template_id_patch_admin ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_override_pxe_fallback +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_override_pxe_fallback ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_valid_console_port_range +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_valid_console_port_range ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_129_portgroups_portgroup_ident_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_129_portgroups_portgroup_ident_delete_observer ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_354_third_party_admin_cannot_patch_volume_connectors ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_354_third_party_admin_cannot_patch_volume_connectors ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_117_portgroups_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_117_portgroups_post_observer ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_create_port_when_its_state_is_none -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_create_port_when_its_state_is_none ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_member ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_130_nodes_portgroups_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_130_nodes_portgroups_get_admin ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property_bios_default +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property_bios_default ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_355_owner_admin_can_delete_volume_connectors ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_355_owner_admin_can_delete_volume_connectors ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_118_portgroups_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_118_portgroups_detail_get_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_pxe_port_macs -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_pxe_port_macs ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_observer ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_119_portgroups_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_119_portgroups_detail_get_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_anaconda_deploy +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_anaconda_deploy ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_131_nodes_portgroups_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_131_nodes_portgroups_get_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_356_owner_manager_can_delete_volume_connectors ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_356_owner_manager_can_delete_volume_connectors ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_279_deploy_templates_deploy_template_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_279_deploy_templates_deploy_template_id_delete_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_120_portgroups_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_120_portgroups_detail_get_observer ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu ... ok +ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_from_all_nodes_one_pass +ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_from_all_nodes_one_pass ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_132_nodes_portgroups_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_132_nodes_portgroups_get_observer ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property_bios +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property_bios ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_357_lessee_admin_can_delete_volume_connectors ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_357_lessee_admin_can_delete_volume_connectors ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_133_nodes_portgroups_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_133_nodes_portgroups_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy ... ok +ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config +ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy_false +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy_false ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_358_lessee_manager_can_delete_volume_connectors +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_358_lessee_manager_can_delete_volume_connectors ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_134_nodes_portgroups_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_134_nodes_portgroups_detail_get_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid_false +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid_false ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_359_third_party_admin_cannot_delete_volume_connector +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_359_third_party_admin_cannot_delete_volume_connector ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image_anaconda +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image_anaconda ... ok ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9f0fdd0b-d9e9-43c3-95a7-84f0c9aa5c66 +Openstack-Request-Id: req-9d8dbb5d-6c71-4208-915b-3ef9aa4b460b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "7cee38ba-d0d2-4f8a-a8fb-5932ebc45ea7", "created_at": "2025-02-07T21:36:07.725587+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/7cee38ba-d0d2-4f8a-a8fb-5932ebc45ea7", "rel": "self"}, {"href": "http://localhost/deploy_templates/7cee38ba-d0d2-4f8a-a8fb-5932ebc45ea7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -API ACL Testing Path get /v1/deploy_templates/1caa5f55-1dee-4426-aef7-c7cadb106a0c -GET: /v1/deploy_templates/1caa5f55-1dee-4426-aef7-c7cadb106a0c {} -GOT:Response: 403 Forbidden +{"history": [{"uuid": "5ee7e071-6810-4791-a819-164e491860fa", "created_at": "2024-01-06T15:36:10.294934+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/5ee7e071-6810-4791-a819-164e491860fa", "rel": "self"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-391172ba-4acb-49b4-9e55-4efa58408700 +Openstack-Request-Id: req-3c975dd7-8518-4275-9e1a-81c708cf6635 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"history": [{"uuid": "34379468-6973-4132-9183-e1a03f9d6daa", "created_at": "2024-01-06T15:36:10.445140+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/34379468-6973-4132-9183-e1a03f9d6daa", "rel": "self"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-391172ba-4acb-49b4-9e55-4efa58408700 +Openstack-Request-Id: req-3c975dd7-8518-4275-9e1a-81c708cf6635 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/deploy_templates/f21d0f8f-5f1a-420b-9961-ab401bf6fde1 -GET: /v1/deploy_templates/f21d0f8f-5f1a-420b-9961-ab401bf6fde1 {} +{"history": [{"uuid": "34379468-6973-4132-9183-e1a03f9d6daa", "created_at": "2024-01-06T15:36:10.445140+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/34379468-6973-4132-9183-e1a03f9d6daa", "rel": "self"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ed4a6613-8bf9-4062-8a47-7645b35c6182 +Openstack-Request-Id: req-152344d2-250a-4d23-8060-09ebcad3ec32 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "f21d0f8f-5f1a-420b-9961-ab401bf6fde1", "created_at": "2025-02-07T21:36:08.189789+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f21d0f8f-5f1a-420b-9961-ab401bf6fde1", "rel": "self"}, {"href": "http://localhost/deploy_templates/f21d0f8f-5f1a-420b-9961-ab401bf6fde1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +{"history": [{"uuid": "5ae1a2e6-9aa1-4a94-aecc-3ffca82a733b", "created_at": "2024-01-06T15:36:10.552636+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/5ae1a2e6-9aa1-4a94-aecc-3ffca82a733b", "rel": "self"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ed4a6613-8bf9-4062-8a47-7645b35c6182 +Openstack-Request-Id: req-152344d2-250a-4d23-8060-09ebcad3ec32 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "f21d0f8f-5f1a-420b-9961-ab401bf6fde1", "created_at": "2025-02-07T21:36:08.189789+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f21d0f8f-5f1a-420b-9961-ab401bf6fde1", "rel": "self"}, {"href": "http://localhost/deploy_templates/f21d0f8f-5f1a-420b-9961-ab401bf6fde1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -API ACL Testing Path patch /v1/deploy_templates/ff07c875-2436-4990-bd3c-ca1ef28156f6 -PATCH: /v1/deploy_templates/ff07c875-2436-4990-bd3c-ca1ef28156f6 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +{"history": [{"uuid": "5ae1a2e6-9aa1-4a94-aecc-3ffca82a733b", "created_at": "2024-01-06T15:36:10.552636+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/5ae1a2e6-9aa1-4a94-aecc-3ffca82a733b", "rel": "self"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/70e80943-6659-47ef-862e-145e16e564fb +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/70e80943-6659-47ef-862e-145e16e564fb {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e765b985-bd31-4c35-823c-b9016e86136c +Openstack-Request-Id: req-48a4d325-67fa-47ca-b9f4-9359119e255f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ff07c875-2436-4990-bd3c-ca1ef28156f6", "created_at": "2025-02-07T21:36:08.744970+00:00", "updated_at": "2025-02-07T21:36:09.269723+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ff07c875-2436-4990-bd3c-ca1ef28156f6", "rel": "self"}, {"href": "http://localhost/deploy_templates/ff07c875-2436-4990-bd3c-ca1ef28156f6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} +{"uuid": "70e80943-6659-47ef-862e-145e16e564fb", "created_at": "2024-01-06T15:36:10.659889+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/70e80943-6659-47ef-862e-145e16e564fb", "rel": "self"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e765b985-bd31-4c35-823c-b9016e86136c +Openstack-Request-Id: req-48a4d325-67fa-47ca-b9f4-9359119e255f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ff07c875-2436-4990-bd3c-ca1ef28156f6", "created_at": "2025-02-07T21:36:08.744970+00:00", "updated_at": "2025-02-07T21:36:09.269723+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ff07c875-2436-4990-bd3c-ca1ef28156f6", "rel": "self"}, {"href": "http://localhost/deploy_templates/ff07c875-2436-4990-bd3c-ca1ef28156f6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} -API ACL Testing Path patch /v1/deploy_templates/4e07ba4a-d5f5-4cec-8453-62d89da17fc4 -PATCH: /v1/deploy_templates/4e07ba4a-d5f5-4cec-8453-62d89da17fc4 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] -GOT:Response: 403 Forbidden +{"uuid": "70e80943-6659-47ef-862e-145e16e564fb", "created_at": "2024-01-06T15:36:10.659889+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/70e80943-6659-47ef-862e-145e16e564fb", "rel": "self"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/8257bb26-6a63-4634-94de-578615f738f2 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/8257bb26-6a63-4634-94de-578615f738f2 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7d190a6c-f478-401c-a987-44afc5d20818 +Openstack-Request-Id: req-c9d4edd0-3a9a-401e-a5e7-1280613a24b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "8257bb26-6a63-4634-94de-578615f738f2", "created_at": "2024-01-06T15:36:10.771942+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/8257bb26-6a63-4634-94de-578615f738f2", "rel": "self"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7d190a6c-f478-401c-a987-44afc5d20818 +Openstack-Request-Id: req-c9d4edd0-3a9a-401e-a5e7-1280613a24b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/deploy_templates/37ee8e22-9272-4751-bb63-b86ccb5d3fa2 -PATCH: /v1/deploy_templates/37ee8e22-9272-4751-bb63-b86ccb5d3fa2 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] -GOT:Response: 403 Forbidden +{"uuid": "8257bb26-6a63-4634-94de-578615f738f2", "created_at": "2024-01-06T15:36:10.771942+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/8257bb26-6a63-4634-94de-578615f738f2", "rel": "self"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/55252699-d3fe-4f50-81bb-180deee1c01b +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/55252699-d3fe-4f50-81bb-180deee1c01b {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1edf0078-f3cf-45fa-98ba-16505016eea0 +Openstack-Request-Id: req-a710ca3d-ec29-4a49-9f06-89e42e78e2d6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"uuid": "55252699-d3fe-4f50-81bb-180deee1c01b", "created_at": "2024-01-06T15:36:10.920056+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/55252699-d3fe-4f50-81bb-180deee1c01b", "rel": "self"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1edf0078-f3cf-45fa-98ba-16505016eea0 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/deploy_templates/ef105196-b3de-415b-bed9-afd60d2a6d87 -DELETE: /v1/deploy_templates/ef105196-b3de-415b-bed9-afd60d2a6d87 -GOT:Response: 204 No Content -Openstack-Request-Id: req-49b2f7d6-f62a-4331-a2fa-bc747962fba9 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -ACL Test GOT Response: 204 No Content -Openstack-Request-Id: req-49b2f7d6-f62a-4331-a2fa-bc747962fba9 +Openstack-Request-Id: req-a710ca3d-ec29-4a49-9f06-89e42e78e2d6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 - -API ACL Testing Path delete /v1/deploy_templates/3a3a52d9-9ed7-4e0d-afa6-959b9f5fed81 -DELETE: /v1/deploy_templates/3a3a52d9-9ed7-4e0d-afa6-959b9f5fed81 -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect" -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_member ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb ... ok +{"uuid": "55252699-d3fe-4f50-81bb-180deee1c01b", "created_at": "2024-01-06T15:36:10.920056+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/55252699-d3fe-4f50-81bb-180deee1c01b", "rel": "self"}]} +GET: /v1/bad/path {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3baf853b-b9d6-4c1c-a2d9-b68b4c881024 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_two_pass +ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_two_pass ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_image_not_found +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_image_not_found ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image ... ok +ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_with_days +ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_with_days ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4d812e4e-ca4e-4269-a737-29a2217c15e8 +Openstack-Request-Id: req-5a209e73-3c89-4ffa-b547-6a6c479d4455 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-09a996a2-47e9-4e7a-81ec-a21b009eb12f +Openstack-Request-Id: req-a4425721-d9ef-419d-a67a-97d97a6a193c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c91a199a-47d1-4f5f-b0d7-e249b4495f9f +Openstack-Request-Id: req-7c980d68-20f8-4341-82e7-5dc7883873dd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1bfbf815-b1d4-4a1e-862b-1481bada2ad0 +Openstack-Request-Id: req-f5c0813d-a4f0-445c-97fc-eeac189c49b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b83518ec-0764-47f3-9701-1693482fb57b +Openstack-Request-Id: req-3e9f318c-4aed-4909-921d-ae6ae0962700 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups -GET: /v1/portgroups {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-98b72a39-fcfa-4aa1-854b-cd971014c450 +Openstack-Request-Id: req-188055b7-8968-4398-a0bd-f64842b332ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups -GET: /v1/portgroups {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b4e45183-3c0a-44de-be63-ccf300c2ac37 +Openstack-Request-Id: req-9859e1eb-6efc-4647-9d00-230460f0910b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups -GET: /v1/portgroups {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fe08bcb4-5122-4ecb-8fc7-25f5f1e77342 +Openstack-Request-Id: req-0a5f3f56-8202-48e0-bb85-e8acc1effc98 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0cfb5fb6-a820-480e-be28-298d3009ebe4 +Openstack-Request-Id: req-71946395-be09-4bdb-b4d6-029e2dcaca04 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6e9486f8-adf7-4d49-b6cb-85d74b32e7b9 +Openstack-Request-Id: req-79b3401b-c636-47aa-923d-a234fcdef5b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/portgroups -POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-92cf9367-66ae-4a95-b6aa-231c55b7b524 +Openstack-Request-Id: req-5eff6ef7-43f9-41e2-97b3-53a0448e4fce X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/detail -GET: /v1/portgroups/detail {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4f806032-1496-487b-880c-02c167842104 +Openstack-Request-Id: req-6d564c5c-cffc-4467-9a03-0ef08241ad44 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/detail -GET: /v1/portgroups/detail {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0f6c7ecb-59b1-41cf-a00e-de6219af4b9e +Openstack-Request-Id: req-6a5951fe-6925-40de-bea5-e8d234bd1b7e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/detail -GET: /v1/portgroups/detail {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a1296720-105f-4d89-a085-d1788bc04566 +Openstack-Request-Id: req-d62840e8-3d04-433e-9a73-c1953bdbd075 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect" -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_121_portgroups_portgroup_ident_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_121_portgroups_portgroup_ident_get_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_358_lessee_manager_can_delete_volume_connectors -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_358_lessee_manager_can_delete_volume_connectors ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_122_portgroups_portgroup_ident_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_122_portgroups_portgroup_ident_get_member ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_282_chassis_post_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_282_chassis_post_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_359_third_party_admin_cannot_delete_volume_connector -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_359_third_party_admin_cannot_delete_volume_connector ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_123_portgroups_portgroup_ident_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_123_portgroups_portgroup_ident_get_observer ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_empty_pxe_port_macs -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_empty_pxe_port_macs ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_135_nodes_portgroups_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_135_nodes_portgroups_detail_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_136_ports_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_136_ports_get_admin ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_137_ports_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_137_ports_get_member ... ok API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-8fe13ec8-d099-4b5a-ab79-415300cbf54f +Openstack-Request-Id: req-e34b166d-5eba-44bc-bba2-b11fdb46f579 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-8fe13ec8-d099-4b5a-ab79-415300cbf54f +Openstack-Request-Id: req-e34b166d-5eba-44bc-bba2-b11fdb46f579 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -48032,14 +49422,14 @@ PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c09b71b6-c266-423f-bb96-0c69e1f36103 +Openstack-Request-Id: req-27641aa8-5e65-4398-a979-3652bdd9e6f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c09b71b6-c266-423f-bb96-0c69e1f36103 +Openstack-Request-Id: req-27641aa8-5e65-4398-a979-3652bdd9e6f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -48048,14 +49438,14 @@ PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-78b76c19-9fb1-4ec9-8a35-95694caec92b +Openstack-Request-Id: req-2516b9e3-3b0c-4569-b59b-f2cf5888e0a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-78b76c19-9fb1-4ec9-8a35-95694caec92b +Openstack-Request-Id: req-2516b9e3-3b0c-4569-b59b-f2cf5888e0a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -48064,14 +49454,14 @@ DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-693bdb40-f10f-4fa3-a6e2-7374dcc59649 +Openstack-Request-Id: req-82c31789-e45a-4a1b-a019-01db454f5d6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-693bdb40-f10f-4fa3-a6e2-7374dcc59649 +Openstack-Request-Id: req-82c31789-e45a-4a1b-a019-01db454f5d6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -48080,14 +49470,14 @@ DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-fbcfbfcf-928d-41c8-b5f8-4c5c73a0d461 +Openstack-Request-Id: req-32f0edc6-4025-4abc-a2e7-3123ae49b00d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-fbcfbfcf-928d-41c8-b5f8-4c5c73a0d461 +Openstack-Request-Id: req-32f0edc6-4025-4abc-a2e7-3123ae49b00d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -48096,14 +49486,14 @@ DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-72a9b1a7-2c40-415e-be81-f114560d55be +Openstack-Request-Id: req-6cbc2ba7-dae3-4c9f-a6aa-d750e2240d65 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-72a9b1a7-2c40-415e-be81-f114560d55be +Openstack-Request-Id: req-6cbc2ba7-dae3-4c9f-a6aa-d750e2240d65 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -48112,14 +49502,14 @@ DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-97b97551-0063-424f-8c66-6d89c505d297 +Openstack-Request-Id: req-5333b318-da50-40e6-ba05-2dd99a13c127 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-97b97551-0063-424f-8c66-6d89c505d297 +Openstack-Request-Id: req-5333b318-da50-40e6-ba05-2dd99a13c127 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -48128,236 +49518,112 @@ DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fcbb4afc-3de6-44bb-b108-dedde7e77346 +Openstack-Request-Id: req-bb2f8529-0ad7-44a1-a2f2-1f013db30432 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fcbb4afc-3de6-44bb-b108-dedde7e77346 +Openstack-Request-Id: req-bb2f8529-0ad7-44a1-a2f2-1f013db30432 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/volume/targets GET: /v1/volume/targets {} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_283_chassis_post_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_283_chassis_post_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_360_owner_reader_can_get_targets ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_360_owner_reader_can_get_targets ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_no_mac -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_no_mac ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_124_portgroups_portgroup_ident_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_124_portgroups_portgroup_ident_patch_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_284_chassis_post_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_284_chassis_post_observer ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_none_pxe_port_macs -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_none_pxe_port_macs ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_361_lesse_reader_can_get_targets ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_361_lesse_reader_can_get_targets ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_125_portgroups_portgroup_ident_patch_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_125_portgroups_portgroup_ident_patch_member ... ok -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_disabled -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_disabled ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_285_chassis_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_285_chassis_get_admin ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect" -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_enabled -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_enabled ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_is_a_path +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_is_a_path ... ok +ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work +ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_138_ports_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_138_ports_get_observer ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect" ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_362_third_party_admin_cannot_get_target_list ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_362_third_party_admin_cannot_get_target_list ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_126_portgroups_portgroup_ident_patch_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_126_portgroups_portgroup_ident_patch_observer ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect" -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_port_creation -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_port_creation ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_286_chassis_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_286_chassis_get_member ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync -ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect" -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate -ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_ipv6 -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_ipv6 ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_127_portgroups_portgroup_ident_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_127_portgroups_portgroup_ident_delete_admin ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__get_post_step_hook -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__get_post_step_hook ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception ... ok -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_139_ports_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_139_ports_post_admin ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect" +ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_not_other_conductor +ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_not_other_conductor ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect" ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_363_owner_reader_can_get_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_363_owner_reader_can_get_volume_target ... ok -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-95741cdb-3c86-4dea-b318-f9efdcbe94e2 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-95741cdb-3c86-4dea-b318-f9efdcbe94e2 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/deploy_templates/346f09d5-104c-4bdc-b5fa-6273726695e6 -DELETE: /v1/deploy_templates/346f09d5-104c-4bdc-b5fa-6273726695e6 -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-544b25a4-b686-40cb-8921-521650dedb56 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-544b25a4-b686-40cb-8921-521650dedb56 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/chassis -POST: /v1/chassis {'description': 'test-chassis'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/chassis/fdb07d18-4d88-402f-bd6d-1f18d0b7c6fb -Openstack-Request-Id: req-290b0f27-2c26-4b81-8f4f-62ca4db6ec32 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "fdb07d18-4d88-402f-bd6d-1f18d0b7c6fb", "created_at": "2025-02-07T21:36:19.331816+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/fdb07d18-4d88-402f-bd6d-1f18d0b7c6fb", "rel": "self"}, {"href": "http://localhost/chassis/fdb07d18-4d88-402f-bd6d-1f18d0b7c6fb", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/fdb07d18-4d88-402f-bd6d-1f18d0b7c6fb/nodes", "rel": "self"}, {"href": "http://localhost/chassis/fdb07d18-4d88-402f-bd6d-1f18d0b7c6fb/nodes", "rel": "bookmark"}]]} -ACL Test GOT Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/chassis/fdb07d18-4d88-402f-bd6d-1f18d0b7c6fb -Openstack-Request-Id: req-290b0f27-2c26-4b81-8f4f-62ca4db6ec32 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "fdb07d18-4d88-402f-bd6d-1f18d0b7c6fb", "created_at": "2025-02-07T21:36:19.331816+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/fdb07d18-4d88-402f-bd6d-1f18d0b7c6fb", "rel": "self"}, {"href": "http://localhost/chassis/fdb07d18-4d88-402f-bd6d-1f18d0b7c6fb", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/fdb07d18-4d88-402f-bd6d-1f18d0b7c6fb/nodes", "rel": "self"}, {"href": "http://localhost/chassis/fdb07d18-4d88-402f-bd6d-1f18d0b7c6fb/nodes", "rel": "bookmark"}]]} -API ACL Testing Path post /v1/chassis -POST: /v1/chassis {'description': 'test-chassis'} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-1728ae9f-63f9-4fb8-a6da-cf6b83df74ea -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-1728ae9f-63f9-4fb8-a6da-cf6b83df74ea -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/chassis -POST: /v1/chassis {'description': 'test-chassis'} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-f81018ab-2777-4b0e-9f02-56a5f82214b7 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-f81018ab-2777-4b0e-9f02-56a5f82214b7 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/chassis -GET: /v1/chassis {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-3bcf4417-5956-4d7f-a5cd-42667dab41db -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-3bcf4417-5956-4d7f-a5cd-42667dab41db -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/chassis -GET: /v1/chassis {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-a548a87a-e503-4934-b543-c55912e36218 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-a548a87a-e503-4934-b543-c55912e36218 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/chassis -GET: /v1/chassis {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-61282ff5-996a-4e4b-8df0-e5807912cc3c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]}ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__get_post_step_hook_no_hook_registered -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__get_post_step_hook_no_hook_registered ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_287_chassis_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_287_chassis_get_observer ... ok -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot ... ok -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_128_portgroups_portgroup_ident_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_128_portgroups_portgroup_ident_delete_member ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_140_ports_post_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_140_ports_post_member ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect" +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_walk_versions +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_walk_versions ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect" +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_141_ports_post_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_141_ports_post_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_364_lessee_reader_can_get_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_364_lessee_reader_can_get_volume_target ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_288_chassis_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_288_chassis_detail_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_deploy -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_deploy ... ok -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning ... ok -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_129_portgroups_portgroup_ident_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_129_portgroups_portgroup_ident_delete_observer ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_142_ports_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_142_ports_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-94c93f57-425b-401a-84e9-fa61565b5ed7 +Openstack-Request-Id: req-d2702eb2-adbc-498a-b6dc-5c9eaa94c538 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-94c93f57-425b-401a-84e9-fa61565b5ed7 +Openstack-Request-Id: req-d2702eb2-adbc-498a-b6dc-5c9eaa94c538 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -48366,14 +49632,14 @@ GET: /v1/volume/targets {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3a46bbb0-e361-411d-9b3d-2e4daf6f286f +Openstack-Request-Id: req-3c68f887-7879-4509-b76d-5827d2002b19 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3a46bbb0-e361-411d-9b3d-2e4daf6f286f +Openstack-Request-Id: req-3c68f887-7879-4509-b76d-5827d2002b19 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -48382,14 +49648,14 @@ GET: /v1/volume/targets {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0d2689af-9519-4245-97db-da052d616e31 +Openstack-Request-Id: req-07f00b53-dc84-4a82-a473-d6c8a66a7aee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": []} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0d2689af-9519-4245-97db-da052d616e31 +Openstack-Request-Id: req-07f00b53-dc84-4a82-a473-d6c8a66a7aee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -48398,240 +49664,154 @@ GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-617b7c93-e062-4d68-a405-8cc46ee47cdb +Openstack-Request-Id: req-6bb0bdea-79fe-4fc7-8409-7aed96a7edc0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:36:26.628313+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:36:17.547830+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"} properties {'redacted_contents': '** Value redacted: Requires permission baremetal:volume:view_target_properties access. Permission denied. **'} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-617b7c93-e062-4d68-a405-8cc46ee47cdb +Openstack-Request-Id: req-6bb0bdea-79fe-4fc7-8409-7aed96a7edc0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:36:26.628313+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:36:17.547830+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"} API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-19b16d44-28f7-4a4a-b6c9-56cec6938290 +Openstack-Request-Id: req-9f674d0e-5aaa-4341-bebd-9a742b3dd18d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:36:28.260216+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:36:17.652800+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"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-19b16d44-28f7-4a4a-b6c9-56cec6938290 +Openstack-Request-Id: req-9f674d0e-5aaa-4341-bebd-9a742b3dd18d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-02-07T21:36:28.260216+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"} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2024-01-06T15:36:17.652800+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"} API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_365_third_party_admin_cannot_get_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_365_third_party_admin_cannot_get_volume_target ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail_deploy -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail_deploy ... ok -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_289_chassis_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_289_chassis_detail_get_member ... ok -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists -ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_pregenerated_token -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_pregenerated_token ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_130_nodes_portgroups_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_130_nodes_portgroups_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_boot_instance -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_boot_instance ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_143_ports_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_143_ports_detail_get_member ... ok +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_366_owner_admin_create_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_366_owner_admin_create_volume_target ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_290_chassis_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_290_chassis_detail_get_observer ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_boot_instance_no_power_on -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_boot_instance_no_power_on ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_131_nodes_portgroups_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_131_nodes_portgroups_get_member ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_walk_versions -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_walk_versions ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect" +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass ... ok +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid ... ok +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_144_ports_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_144_ports_detail_get_observer ... ok +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_367_owner_manager_create_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_367_owner_manager_create_volume_target ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_291_chassis_chassis_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_291_chassis_chassis_id_get_admin ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus_without_ht_enabled -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus_without_ht_enabled ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_132_nodes_portgroups_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_132_nodes_portgroups_get_observer ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_boot_setting_failure -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_boot_setting_failure ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_always -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_always ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node ... ok +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id ... ok +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_145_ports_port_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_145_ports_port_id_get_admin ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool ... ok +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_368_lessee_admin_create_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_368_lessee_admin_create_volume_target ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_292_chassis_chassis_id_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_292_chassis_chassis_id_get_member ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_default -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_default ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_nic_setting_failure -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_nic_setting_failure ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_133_nodes_portgroups_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_133_nodes_portgroups_detail_get_admin ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_never -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_never ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_BIOS_boot_mode -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_BIOS_boot_mode ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps ... ok - -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-61282ff5-996a-4e4b-8df0-e5807912cc3c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]}]} -API ACL Testing Path get /v1/chassis/detail -GET: /v1/chassis/detail {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-f4e340fa-4c9d-468a-9bdc-600635d21d87 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:36:28.535153+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"}]]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-f4e340fa-4c9d-468a-9bdc-600635d21d87 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:36:28.535153+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"}]]}]} -API ACL Testing Path get /v1/chassis/detail -GET: /v1/chassis/detail {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-7f729322-f65f-4357-9837-be19be1554a0 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-7f729322-f65f-4357-9837-be19be1554a0 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/chassis/detail -GET: /v1/chassis/detail {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-37bf63aa-e544-4e23-9b04-72f00408f27c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:36:31.472379+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"}]]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-37bf63aa-e544-4e23-9b04-72f00408f27c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:36:31.472379+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"}]]}]} -API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-3c059bd3-7ab7-4872-be66-29189299cdc4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:36:33.141997+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"}]]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-3c059bd3-7ab7-4872-be66-29189299cdc4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:36:33.141997+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"}]]} -API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-83a60ff5-848a-46bc-8b88-a0fab724bc4d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-83a60ff5-848a-46bc-8b88-a0fab724bc4d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_293_chassis_chassis_id_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_293_chassis_chassis_id_get_observer ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_146_ports_port_id_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_146_ports_port_id_get_member ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_369_lessee_manager_create_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_369_lessee_manager_create_volume_target ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_UEFI_boot_mode -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_UEFI_boot_mode ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_134_nodes_portgroups_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_134_nodes_portgroups_detail_get_member ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid_whole_disk -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid_whole_disk ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_147_ports_port_id_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_147_ports_port_id_get_observer ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c35dcb1a-4264-410a-8c60-e5470656cb31 +Openstack-Request-Id: req-603f5cc1-9f94-4421-922d-6b4adbf7d391 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c35dcb1a-4264-410a-8c60-e5470656cb31 +Openstack-Request-Id: req-603f5cc1-9f94-4421-922d-6b4adbf7d391 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -48640,541 +49820,402 @@ POST: /v1/volume/targets {'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/e50c4a9e-5312-445d-b7a0-e17226bf19b1 -Openstack-Request-Id: req-23f4cfff-8ce7-42ad-ba6e-163616f8921a +Location: http://localhost/v1/volume/targets/f9f04730-a381-4dda-bfa8-74018d58e887 +Openstack-Request-Id: req-63a60a6d-58d8-402a-a48a-ba505b56a1d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e50c4a9e-5312-445d-b7a0-e17226bf19b1", "created_at": "2025-02-07T21:36:31.759623+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/e50c4a9e-5312-445d-b7a0-e17226bf19b1", "rel": "self"}, {"href": "http://localhost/volume/targets/e50c4a9e-5312-445d-b7a0-e17226bf19b1", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +{"uuid": "f9f04730-a381-4dda-bfa8-74018d58e887", "created_at": "2024-01-06T15:36:17.905397+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/f9f04730-a381-4dda-bfa8-74018d58e887", "rel": "self"}, {"href": "http://localhost/volume/targets/f9f04730-a381-4dda-bfa8-74018d58e887", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/targets/e50c4a9e-5312-445d-b7a0-e17226bf19b1 -Openstack-Request-Id: req-23f4cfff-8ce7-42ad-ba6e-163616f8921a +Location: http://localhost/v1/volume/targets/f9f04730-a381-4dda-bfa8-74018d58e887 +Openstack-Request-Id: req-63a60a6d-58d8-402a-a48a-ba505b56a1d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e50c4a9e-5312-445d-b7a0-e17226bf19b1", "created_at": "2025-02-07T21:36:31.759623+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/e50c4a9e-5312-445d-b7a0-e17226bf19b1", "rel": "self"}, {"href": "http://localhost/volume/targets/e50c4a9e-5312-445d-b7a0-e17226bf19b1", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +{"uuid": "f9f04730-a381-4dda-bfa8-74018d58e887", "created_at": "2024-01-06T15:36:17.905397+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/f9f04730-a381-4dda-bfa8-74018d58e887", "rel": "self"}, {"href": "http://localhost/volume/targets/f9f04730-a381-4dda-bfa8-74018d58e887", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} API ACL Testing Path post /v1/volume/targets POST: /v1/volume/targets {'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/ddd3786a-7973-44af-b6fb-0ae56dff11b9 -Openstack-Request-Id: req-59c1c492-6e6f-40e8-b991-140ffa63bdf6 +Location: http://localhost/v1/volume/targets/0adfc253-44d0-48af-8876-f027122aa749 +Openstack-Request-Id: req-ddb8e377-51cf-4164-8920-8c838267544b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ddd3786a-7973-44af-b6fb-0ae56dff11b9", "created_at": "2025-02-07T21:36:33.456008+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/ddd3786a-7973-44af-b6fb-0ae56dff11b9", "rel": "self"}, {"href": "http://localhost/volume/targets/ddd3786a-7973-44af-b6fb-0ae56dff11b9", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +{"uuid": "0adfc253-44d0-48af-8876-f027122aa749", "created_at": "2024-01-06T15:36:18.014603+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0adfc253-44d0-48af-8876-f027122aa749", "rel": "self"}, {"href": "http://localhost/volume/targets/0adfc253-44d0-48af-8876-f027122aa749", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/targets/ddd3786a-7973-44af-b6fb-0ae56dff11b9 -Openstack-Request-Id: req-59c1c492-6e6f-40e8-b991-140ffa63bdf6 +Location: http://localhost/v1/volume/targets/0adfc253-44d0-48af-8876-f027122aa749 +Openstack-Request-Id: req-ddb8e377-51cf-4164-8920-8c838267544b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ddd3786a-7973-44af-b6fb-0ae56dff11b9", "created_at": "2025-02-07T21:36:33.456008+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/ddd3786a-7973-44af-b6fb-0ae56dff11b9", "rel": "self"}, {"href": "http://localhost/volume/targets/ddd3786a-7973-44af-b6fb-0ae56dff11b9", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +{"uuid": "0adfc253-44d0-48af-8876-f027122aa749", "created_at": "2024-01-06T15:36:18.014603+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0adfc253-44d0-48af-8876-f027122aa749", "rel": "self"}, {"href": "http://localhost/volume/targets/0adfc253-44d0-48af-8876-f027122aa749", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} API ACL Testing Path post /v1/volume/targets POST: /v1/volume/targets {'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/fc42811b-e91a-48f6-a24b-edd4b4c61dd0 -Openstack-Request-Id: req-0bd7b073-6c30-4925-8ac7-f2fd284bb769 +Location: http://localhost/v1/volume/targets/739b16ac-be1a-41f6-9b9a-42b8a67a654c +Openstack-Request-Id: req-341985a1-d9f2-4bc8-9283-37fdb4bae01a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "fc42811b-e91a-48f6-a24b-edd4b4c61dd0", "created_at": "2025-02-07T21:36:35.016174+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/fc42811b-e91a-48f6-a24b-edd4b4c61dd0", "rel": "self"}, {"href": "http://localhost/volume/targets/fc42811b-e91a-48f6-a24b-edd4b4c61dd0", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +{"uuid": "739b16ac-be1a-41f6-9b9a-42b8a67a654c", "created_at": "2024-01-06T15:36:18.119405+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/739b16ac-be1a-41f6-9b9a-42b8a67a654c", "rel": "self"}, {"href": "http://localhost/volume/targets/739b16ac-be1a-41f6-9b9a-42b8a67a654c", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/targets/fc42811b-e91a-48f6-a24b-edd4b4c61dd0 -Openstack-Request-Id: req-0bd7b073-6c30-4925-8ac7-f2fd284bb769 +Location: http://localhost/v1/volume/targets/739b16ac-be1a-41f6-9b9a-42b8a67a654c +Openstack-Request-Id: req-341985a1-d9f2-4bc8-9283-37fdb4bae01a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "fc42811b-e91a-48f6-a24b-edd4b4c61dd0", "created_at": "2025-02-07T21:36:35.016174+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/fc42811b-e91a-48f6-a24b-edd4b4c61dd0", "rel": "self"}, {"href": "http://localhost/volume/targets/fc42811b-e91a-48f6-a24b-edd4b4c61dd0", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +{"uuid": "739b16ac-be1a-41f6-9b9a-42b8a67a654c", "created_at": "2024-01-06T15:36:18.119405+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/739b16ac-be1a-41f6-9b9a-42b8a67a654c", "rel": "self"}, {"href": "http://localhost/volume/targets/739b16ac-be1a-41f6-9b9a-42b8a67a654c", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} API ACL Testing Path post /v1/volume/targets POST: /v1/volume/targets {'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/3726b2e5-c8ee-47fc-ad28-cfc035f08946 -Openstack-Request-Id: req-2fd91457-2771-44ff-afad-f2282908f68a +Location: http://localhost/v1/volume/targets/083d03cc-87ef-43d1-a98c-4e29d01904bc +Openstack-Request-Id: req-ffd077f4-7977-4a6a-aef0-1e8c7287b461 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "3726b2e5-c8ee-47fc-ad28-cfc035f08946", "created_at": "2025-02-07T21:36:36.791445+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/3726b2e5-c8ee-47fc-ad28-cfc035f08946", "rel": "self"}, {"href": "http://localhost/volume/targets/3726b2e5-c8ee-47fc-ad28-cfc035f08946", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +{"uuid": "083d03cc-87ef-43d1-a98c-4e29d01904bc", "created_at": "2024-01-06T15:36:18.232669+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/083d03cc-87ef-43d1-a98c-4e29d01904bc", "rel": "self"}, {"href": "http://localhost/volume/targets/083d03cc-87ef-43d1-a98c-4e29d01904bc", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} ACL Test GOT Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/targets/3726b2e5-c8ee-47fc-ad28-cfc035f08946 -Openstack-Request-Id: req-2fd91457-2771-44ff-afad-f2282908f68a +Location: http://localhost/v1/volume/targets/083d03cc-87ef-43d1-a98c-4e29d01904bc +Openstack-Request-Id: req-ffd077f4-7977-4a6a-aef0-1e8c7287b461 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "3726b2e5-c8ee-47fc-ad28-cfc035f08946", "created_at": "2025-02-07T21:36:36.791445+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/3726b2e5-c8ee-47fc-ad28-cfc035f08946", "rel": "self"}, {"href": "http://localhost/volume/targets/3726b2e5-c8ee-47fc-ad28-cfc035f08946", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +{"uuid": "083d03cc-87ef-43d1-a98c-4e29d01904bc", "created_at": "2024-01-06T15:36:18.232669+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/083d03cc-87ef-43d1-a98c-4e29d01904bc", "rel": "self"}, {"href": "http://localhost/volume/targets/083d03cc-87ef-43d1-a98c-4e29d01904bc", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} API ACL Testing Path post /v1/volume/targets -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_empty_list -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_empty_list ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_non_software_raid -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_non_software_raid ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_294_chassis_chassis_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_294_chassis_chassis_id_patch_admin ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_370_third_party_admin_cannot_create_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_370_third_party_admin_cannot_create_volume_target ... ok -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-e9fef58f-03e2-46c1-899d-b11756fcbc2b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-cf96e3c7-ddd5-47ea-a133-ce96ed223f70 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-00da5361-b07b-4f71-9a8f-98cc4c87ef1d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-4a8647db-2161-4749-81d7-d03629f160c9 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_148_ports_port_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_148_ports_port_id_patch_admin ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user ... ok +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c9ee5b1f-cd62-4fbc-bcbb-e8b68a2e80b8 +Openstack-Request-Id: req-d04b54a1-8c00-4d37-bd73-bd2f9d3a9c37 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:46.564621+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/internal_info', 'value': False, 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-9714a636-4569-4bf8-8533-04d3311ad61a +Openstack-Request-Id: req-835e6fdf-fb30-429f-90c1-e1385951e1f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GOT:Response: 404 Not Found +{"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}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'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-7cf4e16d-9c6e-4a60-a707-7d19ecdecce9 +Openstack-Request-Id: req-df017966-c266-4264-8348-9931d676d5b0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GOT:Response: 404 Not Found +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:47.967334+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/mode', 'op': 'add', 'value': '802.3ad'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-57cb4be0-7951-4ba2-b884-568e001ad0de +Openstack-Request-Id: req-9abf5b2f-3b2e-4efc-b393-8796c437b612 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GOT:Response: 404 Not Found +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 [{'path': '/properties/abc', 'op': 'add', 'value': 123}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-dcb482e3-f468-4ce3-bcb1-56dc599caca3 +Openstack-Request-Id: req-af245041-e6df-436a-83e3-5c01acdc6a7b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} -GOT:Response: 404 Not Found +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 [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6c8d25cc-a0ff-4f1a-b533-9975ae1e3d02 +Openstack-Request-Id: req-d19c3551-6a9e-4d72-9e94-337d363fd6a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2024-01-06T15:33:49.852287+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, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "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 [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e9a606f1-9ce9-43d8-8172-c4890ae09f5d -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_149_ports_port_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_149_ports_port_id_patch_member ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_371_owner_member_can_patch_volume_target +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_371_owner_member_can_patch_volume_target ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9aa2985e-4d53-4405-b3b3-189c163cf88d +Openstack-Request-Id: req-9ac2ef56-cdf8-4449-97fb-036e8067e622 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} -GOT:Response: 404 Not Found +API ACL Testing Path get /v1/ports +GET: /v1/ports {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1e34172e-53e5-489a-b2ed-5f9929ef225e +Openstack-Request-Id: req-69bbc98c-0924-4ce5-92ea-35635bb81e00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/ports +GET: /v1/ports {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7297fc6e-5a19-49d7-a35c-e8cf28516c87 +Openstack-Request-Id: req-e37ff04f-a0db-4e3e-916c-aab5466dcc62 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_135_nodes_portgroups_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_135_nodes_portgroups_detail_get_observer ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__guess_root_disk -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__guess_root_disk ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_295_chassis_chassis_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_295_chassis_chassis_id_patch_member ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_bios -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_bios ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_371_owner_member_can_patch_volume_target -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_371_owner_member_can_patch_volume_target ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_136_ports_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_136_ports_get_admin ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_exception_bios -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_exception_bios ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_exception_uefi -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_exception_uefi ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_296_chassis_chassis_id_patch_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_296_chassis_chassis_id_patch_observer ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_fail -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_372_lessee_admin_can_patch_volume_target -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_372_lessee_admin_can_patch_volume_target ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v4_and_v6 -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v4_and_v6 ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_explicit_uuid -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_explicit_uuid ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_multiple_supported_gpu -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_multiple_supported_gpu ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v6 -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v6 ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_explicit_uuid_bios -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_explicit_uuid_bios ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_137_ports_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_137_ports_get_member ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_297_chassis_chassis_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_297_chassis_chassis_id_delete_admin ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_cpu -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_cpu ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_373_lessee_manager_can_patch_volume_target -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_373_lessee_manager_can_patch_volume_target ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_gpu -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_gpu ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_uefi -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_uefi ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_298_chassis_chassis_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_298_chassis_chassis_id_delete_member ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_138_ports_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_138_ports_get_observer ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_374_lessee_member_cannot_patch_volume_target -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_374_lessee_member_cannot_patch_volume_target ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_supported_gpu -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_supported_gpu ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path ... ok -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed -ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image_bios -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image_bios ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_299_chassis_chassis_id_delete_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_299_chassis_chassis_id_delete_observer ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_139_ports_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_139_ports_post_admin ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_with_prep -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_with_prep ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_375_third_party_admin_cannot_patch_volume_target -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_375_third_party_admin_cannot_patch_volume_target ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_post_clean_step_hook -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_post_clean_step_hook ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector ... ok -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/ports +GET: /v1/ports {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-d08d7c7b-37cb-400d-98a1-22e765617efb +Openstack-Request-Id: req-71f27346-6491-4d2d-ad83-7dc0b3641582 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:36:36.349636+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"}]]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/ports +POST: /v1/ports {'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-d08d7c7b-37cb-400d-98a1-22e765617efb +Openstack-Request-Id: req-d42634ef-ab14-4dd1-8ba8-3391f4a7ee74 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:36:36.349636+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"}]]} -API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/ports +POST: /v1/ports {'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-76c9679c-d1b2-4bcb-bffa-a99281e02627 +Openstack-Request-Id: req-4630613e-d2ea-4553-997d-c35c2cbc685c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:36:37.814968+00:00", "updated_at": "2025-02-07T21:36:38.259307+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"}]]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/ports +POST: /v1/ports {'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-76c9679c-d1b2-4bcb-bffa-a99281e02627 +Openstack-Request-Id: req-84888546-9ebe-46be-8ee0-4a50780ab71c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-02-07T21:36:37.814968+00:00", "updated_at": "2025-02-07T21:36:38.259307+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"}]]} -API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/ports/detail +GET: /v1/ports/detail {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1f2b8aa4-b48c-4f93-9445-faca70bb3be8 +Openstack-Request-Id: req-f30c9bfe-da2b-4245-94a9-c9afe30bbbb6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/ports/detail +GET: /v1/ports/detail {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-1f2b8aa4-b48c-4f93-9445-faca70bb3be8 +Openstack-Request-Id: req-a505428b-d921-49c4-b590-d324b21590d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/ports/detail +GET: /v1/ports/detail {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b66e723f-2b31-4c92-9c78-0c82474aed75 +Openstack-Request-Id: req-88e0679f-9006-4888-a363-74c61c6ebf9b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b66e723f-2b31-4c92-9c78-0c82474aed75 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GOT:Response: 204 No Content -Openstack-Request-Id: req-53f7f15d-75a2-423a-b47e-aad4c95bf6a4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 - -ACL Test GOT Response: 204 No Content -Openstack-Request-Id: req-53f7f15d-75a2-423a-b47e-aad4c95bf6a4 +Openstack-Request-Id: req-53320b87-d8f9-4639-badb-97d88a245ca4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 - -API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7f8f1934-4cdf-4c8f-a5d9-ebe32caaee40 +Openstack-Request-Id: req-1c9b442e-dcfb-4ebe-b736-c58313619905 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7f8f1934-4cdf-4c8f-a5d9-ebe32caaee40 +Openstack-Request-Id: req-7222b14b-84cd-4f63-8227-8f4f302a82c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-deecaa9d-7bc0-4121-8b4d-04a1441c1a0a +Openstack-Request-Id: req-4a726b6f-178d-4a90-b2b0-c3ee90575eb6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-deecaa9d-7bc0-4121-8b4d-04a1441c1a0a +Openstack-Request-Id: req-8137af3f-763d-4a74-a0d4-757477e5e949 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_140_ports_post_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_140_ports_post_member ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_300_node_history_get_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_300_node_history_get_admin ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_150_ports_port_id_patch_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_150_ports_port_id_patch_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_372_lessee_admin_can_patch_volume_target +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_372_lessee_admin_can_patch_volume_target ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found ... ok +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict ... ok +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_no_steps +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_no_steps ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_151_ports_port_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_151_ports_port_id_delete_admin ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_373_lessee_manager_can_patch_volume_target +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_373_lessee_manager_can_patch_volume_target ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation ... ok +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_on_node +ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_on_node ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate ... ok +ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error +ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port ... ok +ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled +ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_374_lessee_member_cannot_patch_volume_target +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_374_lessee_member_cannot_patch_volume_target ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_152_ports_port_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_152_ports_port_id_delete_member ... ok +ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists +ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated ... ok +ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error +ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_375_third_party_admin_cannot_patch_volume_target +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_375_third_party_admin_cannot_patch_volume_target ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port_auto_allocate +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port_auto_allocate ... ok +ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting +ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_153_ports_port_id_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_153_ports_port_id_delete_observer ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version ... ok +ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_always +ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_always ... ok +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id +ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_376_owner_admin_can_delete_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_376_owner_admin_can_delete_volume_target ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_141_ports_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_141_ports_post_observer ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_301_node_history_get_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_301_node_history_get_member ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_switch_to_tenant_network -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_switch_to_tenant_network ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist ... ok +ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_default +ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_default ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_154_nodes_ports_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_154_nodes_ports_get_admin ... ok +ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_never +ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_never ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_377_owner_manager_can_delete_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_377_owner_manager_can_delete_volume_target ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_142_ports_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_142_ports_detail_get_admin ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficient_data -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficient_data ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_switch_to_tenant_network_fails -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_switch_to_tenant_network_fails ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_302_node_history_get_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_302_node_history_get_observer ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_iinfo -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_iinfo ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_143_ports_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_143_ports_detail_get_member ... ok +ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device +ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_alloc_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_alloc_port ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_155_nodes_ports_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_155_nodes_ports_get_member ... ok +ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid +ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_with_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_with_port ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up ... ok POST: /v1/volume/targets {'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-ad0ef4bc-9da1-4f7c-8a98-5b971a97e3d4 +Openstack-Request-Id: req-e8d5a7f6-c42b-424a-8b6b-670768f78f7d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ad0ef4bc-9da1-4f7c-8a98-5b971a97e3d4 +Openstack-Request-Id: req-e8d5a7f6-c42b-424a-8b6b-670768f78f7d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -49183,14 +50224,14 @@ PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-58a9bc8b-0a3f-4044-9f34-24b03526a22e +Openstack-Request-Id: req-443b8047-5a03-4db5-acf6-8a0bab3fcaa8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-58a9bc8b-0a3f-4044-9f34-24b03526a22e +Openstack-Request-Id: req-443b8047-5a03-4db5-acf6-8a0bab3fcaa8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -49199,14 +50240,14 @@ PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-aed7221c-d72c-4650-a236-c97b55dd5a64 +Openstack-Request-Id: req-db6012cf-ccbd-4831-88cc-e2ed920394e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-aed7221c-d72c-4650-a236-c97b55dd5a64 +Openstack-Request-Id: req-db6012cf-ccbd-4831-88cc-e2ed920394e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -49215,14 +50256,14 @@ PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b380f8a0-4130-44b9-98d5-82b786d3284b +Openstack-Request-Id: req-02335cfd-ac13-42b1-971f-79f6c31b34d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-b380f8a0-4130-44b9-98d5-82b786d3284b +Openstack-Request-Id: req-02335cfd-ac13-42b1-971f-79f6c31b34d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -49231,14 +50272,14 @@ PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3b8153fc-efa3-489f-9c07-be71a634d051 +Openstack-Request-Id: req-09970099-c8d0-49ed-b1c4-fe61e895d613 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-3b8153fc-efa3-489f-9c07-be71a634d051 +Openstack-Request-Id: req-09970099-c8d0-49ed-b1c4-fe61e895d613 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -49247,14 +50288,14 @@ PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3fe34492-929c-42eb-a0e6-368f783c5734 +Openstack-Request-Id: req-e78bad2e-42f7-4467-ba8a-6fc72c978d5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3fe34492-929c-42eb-a0e6-368f783c5734 +Openstack-Request-Id: req-e78bad2e-42f7-4467-ba8a-6fc72c978d5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -49263,14 +50304,14 @@ DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-9c418f8b-10fb-4656-9585-392cabc24ceb +Openstack-Request-Id: req-4e055ea0-8a1d-4d5d-b8bd-7caab2d5cd82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-9c418f8b-10fb-4656-9585-392cabc24ceb +Openstack-Request-Id: req-4e055ea0-8a1d-4d5d-b8bd-7caab2d5cd82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -49279,615 +50320,452 @@ DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-761c2ba9-3ae9-475d-91e9-298845389d87 +Openstack-Request-Id: req-e77278e6-e226-47e0-9fd4-49894558030f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-761c2ba9-3ae9-475d-91e9-298845389d87 +Openstack-Request-Id: req-e77278e6-e226-47e0-9fd4-49894558030f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_378_lessee_admin_can_delete_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_378_lessee_admin_can_delete_volume_target ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_get_power_state_fails -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_get_power_state_fails ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_override -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_override ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_303_node_history_get_entry_admin -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_303_node_history_get_entry_admin ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_no_power_on_support -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_no_power_on_support ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_144_ports_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_144_ports_detail_get_observer ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_action_oob_power_off -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_action_oob_power_off ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_156_nodes_ports_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_156_nodes_ports_get_observer ... ok +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_379_lessee_manager_can_delete_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_379_lessee_manager_can_delete_volume_target ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_304_node_history_get_entry_member -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_304_node_history_get_entry_member ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_145_ports_port_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_145_ports_port_id_get_admin ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_157_nodes_ports_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_157_nodes_ports_detail_get_admin ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false ... ok +ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_maintenance +ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_maintenance ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_158_nodes_ports_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_158_nodes_ports_detail_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_380_owner_member_cannot_delete_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_380_owner_member_cannot_delete_volume_target ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_action_oob_power_off_failed -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_action_oob_power_off_failed ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_json -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_json ... ok -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_305_node_history_get_entry_observer -ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_305_node_history_get_entry_observer ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step ... ok -ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state -ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_off_fails -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_off_fails ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_146_ports_port_id_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_146_ports_port_id_get_member ... ok -ironic.tests.unit.common.test_fsm.FSMTest.test_initialize -ironic.tests.unit.common.test_fsm.FSMTest.test_initialize ... ok +ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_not_retry_with_token +ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_not_retry_with_token ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist ... ok +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor ... ok +ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change +ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_159_nodes_ports_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_159_nodes_ports_detail_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_381_lessee_member_cannot_delete_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_381_lessee_member_cannot_delete_volume_target ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_doesnt_complete -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_doesnt_complete ... ok -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure ... ok -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_fails -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_fails ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_147_ports_port_id_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_147_ports_port_id_get_observer ... ok +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old ... ok +ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry +ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_160_portgroups_ports_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_160_portgroups_ports_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_382_third_party_admin_cannot_delete_volume_target ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_382_third_party_admin_cannot_delete_volume_target ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints ... ok -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_race -ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_race ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook ... ok -ironic.tests.unit.common.test_fsm.FSMTest.test_process_event -ironic.tests.unit.common.test_fsm.FSMTest.test_process_event ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority ... ok -ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable -ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_148_ports_port_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_148_ports_port_id_patch_admin ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image ... ok +ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_wrong_state +ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_wrong_state ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_161_portgroups_ports_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_161_portgroups_ports_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_383_owner_reader_can_get_volume_connectors ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_383_owner_reader_can_get_volume_connectors ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_anaconda_deploy -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_anaconda_deploy ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_149_ports_port_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_149_ports_port_id_patch_member ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail ... ok +ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts +ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_162_portgroups_ports_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_162_portgroups_ports_get_observer ... ok +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_384_lessee_reader_can_get_node_volume_connectors ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_384_lessee_reader_can_get_node_volume_connectors ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps ... ok -GOT:Response: 404 Not Found +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes ... ok +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_handles_missing_table +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_handles_missing_table ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_163_portgroups_ports_detail_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_163_portgroups_ports_detail_get_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_164_portgroups_ports_detail_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_164_portgroups_ports_detail_get_member ... ok +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-5e54a158-9e2a-4b84-9062-1d04092ef2bb +Openstack-Request-Id: req-b019b9cc-ca1d-4ed0-b252-8615e0d5df64 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/ports -GET: /v1/ports {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-c95aaa53-d23f-431a-90dd-34e3e620d0f9 +Openstack-Request-Id: req-b019b9cc-ca1d-4ed0-b252-8615e0d5df64 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/ports -GET: /v1/ports {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0bfd426e-46e9-4581-821b-afd56d35ad90 +Openstack-Request-Id: req-344cf64b-3dda-48ab-b9e9-f931327de7af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/ports -GET: /v1/ports {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-6e452df0-9508-4ce3-a512-4e5bc0a5fb73 +Openstack-Request-Id: req-344cf64b-3dda-48ab-b9e9-f931327de7af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a3971969-e91a-457a-a1f0-591541a9f7e7 +Openstack-Request-Id: req-f0367f23-83f9-46af-92ee-01ec18fe199a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-5b4e4a24-6a77-4a16-9d13-80ca4f43d2ef +Openstack-Request-Id: req-f0367f23-83f9-46af-92ee-01ec18fe199a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/ports -POST: /v1/ports {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-da944cf7-a5a5-4800-9f84-19afb8a14e40 +Openstack-Request-Id: req-fe60935a-2c1d-4079-a13b-d6d198fa6fd4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/ports/detail -GET: /v1/ports/detail {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} +ACL Test GOT Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-76f23055-41d6-467c-8559-007d6964e705 +Openstack-Request-Id: req-fe60935a-2c1d-4079-a13b-d6d198fa6fd4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/ports/detail -GET: /v1/ports/detail {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3a91bd3e-6c93-48b3-ba15-01319235a8cd +Openstack-Request-Id: req-4e2ee918-dd75-4cb8-95c2-7f6df1359b47 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/ports/detail -GET: /v1/ports/detail {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-74a3e708-5694-43b8-a42f-82592195e4bd +Openstack-Request-Id: req-4e2ee918-dd75-4cb8-95c2-7f6df1359b47 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume/connectors +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume/connectors {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a2fa83f7-bae1-46db-a4b2-ec8521489e36 +Openstack-Request-Id: req-d35249de-e424-4caa-827c-fb6a6d1ac312 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 404 Not Found +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cd99603f-beab-40d9-8258-e8abf0d2fe98 +Openstack-Request-Id: req-d35249de-e424-4caa-827c-fb6a6d1ac312 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 404 Not Found +{"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"}]} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/connectors +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/connectors {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-41701eb8-0704-4570-b9a1-b1b6632fb956 +Openstack-Request-Id: req-d6bfa44b-25fb-4895-bf82-b4ab9d3b1bcd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +{"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"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6328882d-04dd-48b9-bf7f-4065109e7869 +Openstack-Request-Id: req-d6bfa44b-25fb-4895-bf82-b4ab9d3b1bcd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"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"}]} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/connectors +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-01811fe7-3f79-4d71-bf17-7e8c0ab735ba +Openstack-Request-Id: req-314e9e7a-8e90-471c-96b0-60289df1d0f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_150_ports_port_id_patch_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_150_ports_port_id_patch_observer ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy ... ok -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_385_third_party_admin_cannot_get_node_volume_connectors +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_385_third_party_admin_cannot_get_node_volume_connectors ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist ... ok +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write ... ok +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist ... ok +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2ffe2ffe-b445-4d80-80ae-22794d1e97de +Openstack-Request-Id: req-44c4d80f-613e-41a9-a4c9-7a4a6c469f17 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2ffe2ffe-b445-4d80-80ae-22794d1e97de +Openstack-Request-Id: req-a3d08be8-58f9-4c9b-a028-c597ef3a7f1c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9c3d0c86-e289-455f-ab8a-f600fd3cefd6 +Openstack-Request-Id: req-6ee6e05a-74b1-4e68-a70a-b83c7d36176b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9c3d0c86-e289-455f-ab8a-f600fd3cefd6 +Openstack-Request-Id: req-a8bca135-da9a-4115-a9f7-87929fe464de X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-49f0dfce-0cc9-415e-b018-16f25ceb0a7e +Openstack-Request-Id: req-992d7cd6-100d-43d4-a789-c24cf1f223cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-49f0dfce-0cc9-415e-b018-16f25ceb0a7e +Openstack-Request-Id: req-1ea40efc-eb4f-4e99-9d80-e30d06f91813 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8a55c4fd-11de-4160-b013-a9eb84632f9f +Openstack-Request-Id: req-ad1aedf5-38ae-4226-a15d-4aba77aecedd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} -ACL Test GOT Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8a55c4fd-11de-4160-b013-a9eb84632f9f +Openstack-Request-Id: req-a7510c79-a610-4712-884e-bee7502f9127 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7c62918e-f6d0-4d96-bc1c-d556a8e1aa1a +Openstack-Request-Id: req-73826ef4-5917-4004-90b2-70a4802b14c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7c62918e-f6d0-4d96-bc1c-d556a8e1aa1a +Openstack-Request-Id: req-f537b9a8-6de8-4204-8a7d-068bab6d8a14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume/connectors -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume/connectors {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-99cc21b1-cdd3-4c67-9e01-dc5f301d653f +Openstack-Request-Id: req-38cdca75-90e5-4589-bb26-d503bc44c854 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-99cc21b1-cdd3-4c67-9e01-dc5f301d653f +Openstack-Request-Id: req-b2e00c56-05cd-4ee7-85bf-b41bcf46ff51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/connectors -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/connectors {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b2b2ea66-bccd-4e7f-945c-18b28e14bdd0 +Openstack-Request-Id: req-eb287ae5-bf5e-4d25-9b9a-3fdcc9f85b0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b2b2ea66-bccd-4e7f-945c-18b28e14bdd0 +Openstack-Request-Id: req-34c8e062-4b7f-4a9a-9a92-db50bb322768 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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"}]} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/connectors -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/connectors {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4ae9bdf8-0c2a-4912-a4b6-392dfb84545e +Openstack-Request-Id: req-6693fd45-3fe3-4982-80dd-c807a7705430 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_385_third_party_admin_cannot_get_node_volume_connectors -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_385_third_party_admin_cannot_get_node_volume_connectors ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy_false -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy_false ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix_underscore -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix_underscore ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_151_ports_port_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_151_ports_port_id_delete_admin ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid_false -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid_false ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_165_portgroups_ports_detail_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_165_portgroups_ports_detail_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_386_owner_reader_can_get_node_volume_targets ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_386_owner_reader_can_get_node_volume_targets ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down ... ok -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_152_ports_port_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_152_ports_port_id_delete_member ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_force_reboot -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_force_reboot ... ok -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state_fail -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state_fail ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid ... ok +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_166_volume_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_166_volume_get_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 ... ok +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_387_lessee_reader_can_get_node_volume_targets ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_387_lessee_reader_can_get_node_volume_targets ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs ... ok -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_soft_poweroff_retry -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_soft_poweroff_retry ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_153_ports_port_id_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_153_ports_port_id_delete_observer ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never ... ok -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_fail -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_fail ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors ... ok -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry ... ok +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_raises_missing_table +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_raises_missing_table ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_167_volume_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_167_volume_get_member ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_168_volume_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_168_volume_get_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_388_third_part_admin_cannot_read_node_volume_targets ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_388_third_part_admin_cannot_read_node_volume_targets ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port ... ok -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_power_change_success -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_power_change_success ... ok -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_154_nodes_ports_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_154_nodes_ports_get_admin ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets ... ok -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate ... ok -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_169_volume_connectors_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_169_volume_connectors_get_admin ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_389_owner_reader_cannot_get_drivers ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_389_owner_reader_cannot_get_drivers ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_write_image -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_write_image ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_boot_iso_only -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_boot_iso_only ... ok -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_155_nodes_ports_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_155_nodes_ports_get_member ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets ... ok -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_170_volume_connectors_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_170_volume_connectors_get_member ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_390_lessee_reader_cannot_get_drivers ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_390_lessee_reader_cannot_get_drivers ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_156_nodes_ports_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_156_nodes_ports_get_observer ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image_anaconda -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image_anaconda ... ok -ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive -ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_171_volume_connectors_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_171_volume_connectors_get_observer ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_391_third_party_admin_cannot_get_drivers ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_391_third_party_admin_cannot_get_drivers ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_157_nodes_ports_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_157_nodes_ports_detail_get_admin ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive ... ok -ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive_in_swift -ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive_in_swift ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk ... ok -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_success -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_success ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_ramdisk_deploy -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_ramdisk_deploy ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_158_nodes_ports_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_158_nodes_ports_detail_get_member ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_172_volume_connectors_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_172_volume_connectors_post_admin ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_173_volume_connectors_post_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_173_volume_connectors_post_member ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err ... ok ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4ae9bdf8-0c2a-4912-a4b6-392dfb84545e +Openstack-Request-Id: req-314e9e7a-8e90-471c-96b0-60289df1d0f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -49896,14 +50774,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume/targets {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d87a7da6-5537-477f-8de2-fda80dc23c99 +Openstack-Request-Id: req-47a37fee-b5db-4d42-b2fa-0365cf399327 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d87a7da6-5537-477f-8de2-fda80dc23c99 +Openstack-Request-Id: req-47a37fee-b5db-4d42-b2fa-0365cf399327 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -49912,14 +50790,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/targets {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-311ec4e7-0672-4701-bc6d-85504f688f5e +Openstack-Request-Id: req-bbe3bd26-3808-4898-9bc3-f46a8ff6a29a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-311ec4e7-0672-4701-bc6d-85504f688f5e +Openstack-Request-Id: req-bbe3bd26-3808-4898-9bc3-f46a8ff6a29a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -49928,14 +50806,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-07d2580e-fd78-4e8c-9d56-a0059bed2332 +Openstack-Request-Id: req-fccae40e-471c-4c63-8a7b-3d32f9a5bf05 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-07d2580e-fd78-4e8c-9d56-a0059bed2332 +Openstack-Request-Id: req-fccae40e-471c-4c63-8a7b-3d32f9a5bf05 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -49944,14 +50822,14 @@ GET: /v1/drivers {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-8be7c0f3-7453-40fd-88bc-cea55645f3f3 +Openstack-Request-Id: req-56857d8b-4987-46dc-bfce-0f8391568c44 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-8be7c0f3-7453-40fd-88bc-cea55645f3f3 +Openstack-Request-Id: req-56857d8b-4987-46dc-bfce-0f8391568c44 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -49960,14 +50838,14 @@ GET: /v1/drivers {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-6c581f62-38a6-4dac-913d-9a45c4115ddc +Openstack-Request-Id: req-521e3245-644b-4fef-b954-d42adf12bd26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-6c581f62-38a6-4dac-913d-9a45c4115ddc +Openstack-Request-Id: req-521e3245-644b-4fef-b954-d42adf12bd26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -49976,14 +50854,14 @@ GET: /v1/drivers {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-f089cad9-b349-424d-a997-48358f42f080 +Openstack-Request-Id: req-f1f295d8-b22b-4b5b-816f-0f2be19e6e4a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-f089cad9-b349-424d-a997-48358f42f080 +Openstack-Request-Id: req-f1f295d8-b22b-4b5b-816f-0f2be19e6e4a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -49992,360 +50870,259 @@ GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-8774b9df-f16e-4ffb-89fc-03fad7513e3d +Openstack-Request-Id: req-102f7c4e-9bfe-4e8a-b91d-71f4abd7f145 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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}"} -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_392_owner_reader_cannot_get_drivers_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_392_owner_reader_cannot_get_drivers_vendor_passthru ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync -ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect" -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb ... ok -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_159_nodes_ports_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_159_nodes_ports_detail_get_observer ... ok -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_destroy_node_history_by_uuid -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_destroy_node_history_by_uuid ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_393_lessee_reader_cannot_get_drivers_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_393_lessee_reader_cannot_get_drivers_vendor_passthru ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date ... ok -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb ... ok -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date ... ok -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_160_portgroups_ports_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_160_portgroups_ports_get_admin ... ok -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id_not_found -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id_not_found ... ok -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb ... ok -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_174_volume_connectors_post_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_174_volume_connectors_post_observer ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_394_third_party_admin_cannot_get_drivers_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_394_third_party_admin_cannot_get_drivers_vendor_passthru ... ok -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_non_image_deploy -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_non_image_deploy ... ok -ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path -ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path ... ok -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id_empty -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id_empty ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_161_portgroups_ports_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_161_portgroups_ports_get_member ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image ... ok -ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path -ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path ... ok -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_175_volume_volume_connector_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_175_volume_volume_connector_id_get_admin ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_176_volume_volume_connector_id_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_176_volume_volume_connector_id_get_member ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_395_owner_reader_can_get_bios_setttings ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_395_owner_reader_can_get_bios_setttings ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_anaconda -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_anaconda ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at ... ok -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid_not_found -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid_not_found ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_162_portgroups_ports_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_162_portgroups_ports_get_observer ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance ... ok -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb ... ok -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_177_volume_volume_connector_id_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_177_volume_volume_connector_id_get_observer ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_396_lessee_reader_can_get_bios_settings ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_396_lessee_reader_can_get_bios_settings ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb ... ok -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_mdns -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_mdns ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_163_portgroups_ports_detail_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_163_portgroups_ports_detail_get_admin ... ok -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list_sorted -ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list_sorted ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format ... ok -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_no_loopback -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_no_loopback ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_178_volume_volume_connector_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_178_volume_volume_connector_id_patch_admin ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_397_third_party_admin_cannot_get_bios_settings ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_397_third_party_admin_cannot_get_bios_settings ... ok -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_override -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_override ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_164_portgroups_ports_detail_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_164_portgroups_ports_detail_get_member ... ok -ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_clean_dhcp_opts -ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_clean_dhcp_opts ... ok -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip ... ok -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_398_owner_reader_cannot_get_conductors -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_398_owner_reader_cannot_get_conductors ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image ... ok -ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses -ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue -ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_boot_iso -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_boot_iso ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_179_volume_volume_connector_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_179_volume_volume_connector_id_patch_member ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits ... ok +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ea428fea-93b3-479c-8e98-d76c9045e1da +Openstack-Request-Id: req-2f4c681a-42ac-4490-aafa-fa2b1cb17967 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume +GET: /v1/volume {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-b2083b0f-a92b-4392-9e74-3437cdb951ac +Openstack-Request-Id: req-93bcb74d-c057-4f02-a785-0b3f4ec698d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume +GET: /v1/volume {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7a6fc74e-6656-4811-b9fa-ccbe6625e8f6 +Openstack-Request-Id: req-09b56cb4-cf42-41e3-809d-ebf62b6218ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume +GET: /v1/volume {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7b360946-cf26-4c83-8cee-3b33a72a7193 +Openstack-Request-Id: req-d28f77f7-5360-4209-996b-cbfea91f87d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/connectors +GET: /v1/volume/connectors {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a3eb1f34-0d62-4f3a-ba89-9b4bd0812aa5 +Openstack-Request-Id: req-8147e51b-eca5-48fb-b330-7f41b7646625 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/connectors +GET: /v1/volume/connectors {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-c56b708e-8e77-4fc9-9bfd-0c3a638b42e2 +Openstack-Request-Id: req-dcf5abb0-5336-493c-be14-6ea8267187ce X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/connectors +GET: /v1/volume/connectors {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2e10d955-a61a-440d-be38-3c64b428fc94 +Openstack-Request-Id: req-8fc6f6fb-5b96-4fee-b873-4ab441776dfc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/volume/connectors +POST: /v1/volume/connectors {'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-704f5251-c184-4acb-bf59-915cd1cef365 +Openstack-Request-Id: req-02154988-5f7f-4df6-8003-606aed5ea465 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/volume/connectors +POST: /v1/volume/connectors {'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-9a6fcbf8-b1e1-463c-b33e-fa31d8a5a5c2 +Openstack-Request-Id: req-9e899261-f954-4196-b793-c0ede3326cb9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} +API ACL Testing Path post /v1/volume/connectors +POST: /v1/volume/connectors {'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-d29e8298-e392-4bcf-9da1-c4b59aea9522 +Openstack-Request-Id: req-aae46115-f5e9-4323-a66a-d9c8033ab1cf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2bfa7ef4-58a0-47dd-9dc8-719abc95eab8 +Openstack-Request-Id: req-7e5307dc-d8bb-4728-be3e-de4ee8c7b67f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-51b7896a-93fa-4ed5-94f0-a4c8071a8f91 +Openstack-Request-Id: req-9f109807-1249-457b-8fee-567641f796e4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f44ccea4-0ee0-47a2-a109-ecfd4bcb939e +Openstack-Request-Id: req-dfbf6763-7341-4fef-9214-ece4c4706210 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-17b8f071-ac19-4919-b770-ad8d6ac83ae0 +Openstack-Request-Id: req-7fedc194-b9a6-47de-8da2-85c5a77f9272 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4f19eb8f-01c2-417c-9235-83f9c8c97cd8 +Openstack-Request-Id: req-190406f4-ca1f-4b3d-ac31-40293dca076d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_165_portgroups_ports_detail_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_165_portgroups_ports_detail_get_observer ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel -ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel ... ok -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_off -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_off ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_180_volume_volume_connector_id_patch_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_180_volume_volume_connector_id_patch_observer ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_181_volume_volume_connector_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_181_volume_volume_connector_id_delete_admin ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_182_volume_volume_connector_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_182_volume_volume_connector_id_delete_member ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_398_owner_reader_cannot_get_conductors +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_398_owner_reader_cannot_get_conductors ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_183_volume_volume_connector_id_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_183_volume_volume_connector_id_delete_observer ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_399_lessee_reader_cannot_get_conductors ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_399_lessee_reader_cannot_get_conductors ... ok -ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp -ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_166_volume_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_166_volume_get_admin ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_ipa_debug -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_ipa_debug ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi ... ok -ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk -ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk ... ok -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set_bios_mode -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set_bios_mode ... ok -ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps -ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_uefi_mode -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_uefi_mode ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_167_volume_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_167_volume_get_member ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_local_boot -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_local_boot ... ok -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on_timeout -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on_timeout ... ok -ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_failed -ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_failed ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_create -ironic.tests.unit.objects.test_port.TestPortObject.test_create ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_name_and_address -ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_name_and_address ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_184_volume_targets_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_184_volume_targets_get_admin ... ok ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-8774b9df-f16e-4ffb-89fc-03fad7513e3d +Openstack-Request-Id: req-102f7c4e-9bfe-4e8a-b91d-71f4abd7f145 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -50354,14 +51131,14 @@ GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-7c3cf94a-81bf-4700-85c9-c335c2209c56 +Openstack-Request-Id: req-98614931-1a1a-4728-b4ae-ebcdf43274e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-7c3cf94a-81bf-4700-85c9-c335c2209c56 +Openstack-Request-Id: req-98614931-1a1a-4728-b4ae-ebcdf43274e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -50370,14 +51147,14 @@ GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-e0cbbe02-545e-4303-8cf9-9d86a7c31b03 +Openstack-Request-Id: req-8dce93b5-1385-4cdd-8f2c-f36df61d37cf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-e0cbbe02-545e-4303-8cf9-9d86a7c31b03 +Openstack-Request-Id: req-8dce93b5-1385-4cdd-8f2c-f36df61d37cf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -50386,14 +51163,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/bios {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-95369205-e07f-4f6e-a198-a2c78d3e89ca +Openstack-Request-Id: req-d83e62d9-b778-4235-a52c-d33c7ad16595 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"bios": []} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-95369205-e07f-4f6e-a198-a2c78d3e89ca +Openstack-Request-Id: req-d83e62d9-b778-4235-a52c-d33c7ad16595 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -50402,14 +51179,14 @@ GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/bios {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cce302b3-ba70-45e5-a548-1d7c160fa9fa +Openstack-Request-Id: req-87ada57f-0175-4900-b96f-299480fb8bdf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"bios": []} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cce302b3-ba70-45e5-a548-1d7c160fa9fa +Openstack-Request-Id: req-87ada57f-0175-4900-b96f-299480fb8bdf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -50418,14 +51195,14 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/bios {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-190a943d-238c-4606-910b-b919bba6125b +Openstack-Request-Id: req-972a4c73-8993-44e3-9f63-7db58d005c7c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-190a943d-238c-4606-910b-b919bba6125b +Openstack-Request-Id: req-972a4c73-8993-44e3-9f63-7db58d005c7c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -50434,14 +51211,14 @@ GET: /v1/conductors {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-9293652d-5d16-48b5-bacf-1e9595edb7e3 +Openstack-Request-Id: req-2cb0d0ac-94f3-463e-aaa2-57027b7e2db3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:conductor:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-9293652d-5d16-48b5-bacf-1e9595edb7e3 +Openstack-Request-Id: req-2cb0d0ac-94f3-463e-aaa2-57027b7e2db3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -50450,14 +51227,14 @@ GET: /v1/conductors {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-a781d11f-48c3-40dd-a3f9-8265f2368c6c +Openstack-Request-Id: req-cd5e4696-d627-410c-804c-9ea572450aae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:conductor:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-a781d11f-48c3-40dd-a3f9-8265f2368c6c +Openstack-Request-Id: req-cd5e4696-d627-410c-804c-9ea572450aae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -50466,126 +51243,86 @@ GET: /v1/conductors {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-ca3129ed-8bc2-4944-8d01-f6ae89755051 +Openstack-Request-Id: req-fa855859-5096-45c2-89de-e2e7a4b4eb45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:conductor:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_400_third_party_admin_cannot_get_conductors ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_400_third_party_admin_cannot_get_conductors ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address -ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_168_volume_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_168_volume_get_observer ... ok -ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_with_delete -ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_with_delete ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_185_volume_targets_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_185_volume_targets_get_member ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_401_owner_reader_can_get_allocations ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_401_owner_reader_can_get_allocations ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id -ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_name -ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_name ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_swift -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_swift ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string ... ok -ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_delete -ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_delete ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_169_volume_connectors_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_169_volume_connectors_get_admin ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid -ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_186_volume_targets_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_186_volume_targets_get_observer ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_402_lessee_reader_can_get_allocations ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_402_lessee_reader_can_get_allocations ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_list -ironic.tests.unit.objects.test_port.TestPortObject.test_list ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_timeout -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_timeout ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_list_deprecated_owner -ironic.tests.unit.objects.test_port.TestPortObject.test_list_deprecated_owner ... ok -ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_nonroot -ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_nonroot ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_170_volume_connectors_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_170_volume_connectors_get_member ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas -ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_187_volume_targets_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_187_volume_targets_post_admin ... ok +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_403_owner_reader_can_get_their_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_403_owner_reader_can_get_their_allocation ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_partition -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_partition ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_refresh -ironic.tests.unit.objects.test_port.TestPortObject.test_refresh ... ok -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id ... ok -ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_root -ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_root ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_save -ironic.tests.unit.objects.test_port.TestPortObject.test_save ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_171_volume_connectors_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_171_volume_connectors_get_observer ... ok -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_wdi -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_wdi ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh -ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh ... ok -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning ... ok +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_current_none +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_current_none ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_188_volume_targets_post_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_188_volume_targets_post_member ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps ... ok +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_fast_track +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_fast_track ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_404_lessee_reader_can_get_their_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_404_lessee_reader_can_get_their_allocation ... ok -ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_delete_configuration_failed -ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_delete_configuration_failed ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_clean_up_ipxe_config_uefi -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_clean_up_ipxe_config_uefi ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported -ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask ... ok -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported -ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_172_volume_connectors_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_172_volume_connectors_post_admin ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_bios -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_bios ... ok -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port ... ok -ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_delete_configuration_success -ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_delete_configuration_success ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported -ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported ... ok -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_driver_info_and_config -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_driver_info_and_config ... ok +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_primary_none +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_primary_none ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_189_volume_targets_post_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_189_volume_targets_post_observer ... ok +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false ... ok +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_190_volume_volume_target_id_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_190_volume_volume_target_id_get_admin ... ok ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-ca3129ed-8bc2-4944-8d01-f6ae89755051 +Openstack-Request-Id: req-fa855859-5096-45c2-89de-e2e7a4b4eb45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -50594,745 +51331,563 @@ GET: /v1/allocations {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-13e276b9-e17d-4f36-a23b-d63eb7f1b2eb +Openstack-Request-Id: req-681f1d1b-7236-47d5-ab8b-901266cc242e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": [{"uuid": "9056bc58-7b52-4d92-a9c8-2e34c5f44df5", "created_at": "2025-02-07T21:37:06.579318+00:00", "updated_at": "2025-02-07T21:37:06.581808+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/9056bc58-7b52-4d92-a9c8-2e34c5f44df5", "rel": "self"}, {"href": "http://localhost/allocations/9056bc58-7b52-4d92-a9c8-2e34c5f44df5", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} +{"allocations": [{"uuid": "60ad074e-47e4-4a7b-b5d6-74fb7203ebd1", "created_at": "2024-01-06T15:36:23.665167+00:00", "updated_at": "2024-01-06T15:36:23.667234+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/60ad074e-47e4-4a7b-b5d6-74fb7203ebd1", "rel": "self"}, {"href": "http://localhost/allocations/60ad074e-47e4-4a7b-b5d6-74fb7203ebd1", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-13e276b9-e17d-4f36-a23b-d63eb7f1b2eb +Openstack-Request-Id: req-681f1d1b-7236-47d5-ab8b-901266cc242e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": [{"uuid": "9056bc58-7b52-4d92-a9c8-2e34c5f44df5", "created_at": "2025-02-07T21:37:06.579318+00:00", "updated_at": "2025-02-07T21:37:06.581808+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/9056bc58-7b52-4d92-a9c8-2e34c5f44df5", "rel": "self"}, {"href": "http://localhost/allocations/9056bc58-7b52-4d92-a9c8-2e34c5f44df5", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} +{"allocations": [{"uuid": "60ad074e-47e4-4a7b-b5d6-74fb7203ebd1", "created_at": "2024-01-06T15:36:23.665167+00:00", "updated_at": "2024-01-06T15:36:23.667234+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/60ad074e-47e4-4a7b-b5d6-74fb7203ebd1", "rel": "self"}, {"href": "http://localhost/allocations/60ad074e-47e4-4a7b-b5d6-74fb7203ebd1", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} API ACL Testing Path get /v1/allocations GET: /v1/allocations {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fc131a73-a36f-4fb4-a1d3-1ca0977d5874 +Openstack-Request-Id: req-4733625a-804d-4784-9892-e09fd248d146 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": [{"uuid": "d14f7661-13cf-41d0-8fae-ec74898196d2", "created_at": "2025-02-07T21:37:06.702666+00:00", "updated_at": "2025-02-07T21:37:06.705015+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/d14f7661-13cf-41d0-8fae-ec74898196d2", "rel": "self"}, {"href": "http://localhost/allocations/d14f7661-13cf-41d0-8fae-ec74898196d2", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} +{"allocations": [{"uuid": "d55f0dd8-e035-401b-b766-0de44596261c", "created_at": "2024-01-06T15:36:23.869395+00:00", "updated_at": "2024-01-06T15:36:23.872579+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/d55f0dd8-e035-401b-b766-0de44596261c", "rel": "self"}, {"href": "http://localhost/allocations/d55f0dd8-e035-401b-b766-0de44596261c", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fc131a73-a36f-4fb4-a1d3-1ca0977d5874 +Openstack-Request-Id: req-4733625a-804d-4784-9892-e09fd248d146 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"allocations": [{"uuid": "d14f7661-13cf-41d0-8fae-ec74898196d2", "created_at": "2025-02-07T21:37:06.702666+00:00", "updated_at": "2025-02-07T21:37:06.705015+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/d14f7661-13cf-41d0-8fae-ec74898196d2", "rel": "self"}, {"href": "http://localhost/allocations/d14f7661-13cf-41d0-8fae-ec74898196d2", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} -API ACL Testing Path get /v1/allocations/1be84c2d-2f7a-4fcd-9c7e-e134573355f9 -GET: /v1/allocations/1be84c2d-2f7a-4fcd-9c7e-e134573355f9 {} +{"allocations": [{"uuid": "d55f0dd8-e035-401b-b766-0de44596261c", "created_at": "2024-01-06T15:36:23.869395+00:00", "updated_at": "2024-01-06T15:36:23.872579+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/d55f0dd8-e035-401b-b766-0de44596261c", "rel": "self"}, {"href": "http://localhost/allocations/d55f0dd8-e035-401b-b766-0de44596261c", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} +API ACL Testing Path get /v1/allocations/17eba791-1170-4d82-aafb-078985f8c688 +GET: /v1/allocations/17eba791-1170-4d82-aafb-078985f8c688 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a8d56161-3790-4d36-8043-1696b18a04b5 +Openstack-Request-Id: req-08c36911-188e-4771-9388-da5364595cd2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be84c2d-2f7a-4fcd-9c7e-e134573355f9", "created_at": "2025-02-07T21:37:06.804106+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/1be84c2d-2f7a-4fcd-9c7e-e134573355f9", "rel": "self"}, {"href": "http://localhost/allocations/1be84c2d-2f7a-4fcd-9c7e-e134573355f9", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +{"uuid": "17eba791-1170-4d82-aafb-078985f8c688", "created_at": "2024-01-06T15:36:24.007400+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/17eba791-1170-4d82-aafb-078985f8c688", "rel": "self"}, {"href": "http://localhost/allocations/17eba791-1170-4d82-aafb-078985f8c688", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} resource_class CUSTOM_TEST ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a8d56161-3790-4d36-8043-1696b18a04b5 +Openstack-Request-Id: req-08c36911-188e-4771-9388-da5364595cd2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "1be84c2d-2f7a-4fcd-9c7e-e134573355f9", "created_at": "2025-02-07T21:37:06.804106+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/1be84c2d-2f7a-4fcd-9c7e-e134573355f9", "rel": "self"}, {"href": "http://localhost/allocations/1be84c2d-2f7a-4fcd-9c7e-e134573355f9", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} -API ACL Testing Path get /v1/allocations/983c32e8-2cca-4b6b-bb91-f7f84ca992dc -GET: /v1/allocations/983c32e8-2cca-4b6b-bb91-f7f84ca992dc {} +{"uuid": "17eba791-1170-4d82-aafb-078985f8c688", "created_at": "2024-01-06T15:36:24.007400+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/17eba791-1170-4d82-aafb-078985f8c688", "rel": "self"}, {"href": "http://localhost/allocations/17eba791-1170-4d82-aafb-078985f8c688", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +API ACL Testing Path get /v1/allocations/759c41f6-d890-4a27-b118-2a6b077c4286 +GET: /v1/allocations/759c41f6-d890-4a27-b118-2a6b077c4286 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bb20fd6f-b1fc-49b7-84dc-fd063c36ff67 +Openstack-Request-Id: req-aa3b211a-5d5e-474a-accc-6b79dd63e548 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "983c32e8-2cca-4b6b-bb91-f7f84ca992dc", "created_at": "2025-02-07T21:37:06.928527+00:00", "updated_at": "2025-02-07T21:37:06.931081+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/983c32e8-2cca-4b6b-bb91-f7f84ca992dc", "rel": "self"}, {"href": "http://localhost/allocations/983c32e8-2cca-4b6b-bb91-f7f84ca992dc", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +{"uuid": "759c41f6-d890-4a27-b118-2a6b077c4286", "created_at": "2024-01-06T15:36:24.144617+00:00", "updated_at": "2024-01-06T15:36:24.147183+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/759c41f6-d890-4a27-b118-2a6b077c4286", "rel": "self"}, {"href": "http://localhost/allocations/759c41f6-d890-4a27-b118-2a6b077c4286", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} resource_class CUSTOM_LEASED ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bb20fd6f-b1fc-49b7-84dc-fd063c36ff67 +Openstack-Request-Id: req-aa3b211a-5d5e-474a-accc-6b79dd63e548 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "983c32e8-2cca-4b6b-bb91-f7f84ca992dc", "created_at": "2025-02-07T21:37:06.928527+00:00", "updated_at": "2025-02-07T21:37:06.931081+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/983c32e8-2cca-4b6b-bb91-f7f84ca992dc", "rel": "self"}, {"href": "http://localhost/allocations/983c32e8-2cca-4b6b-bb91-f7f84ca992dc", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} -API ACL Testing Path delete /v1/allocations/749a3384-7158-4975-86a3-8b6e113632bd -DELETE: /v1/allocations/749a3384-7158-4975-86a3-8b6e113632bd +{"uuid": "759c41f6-d890-4a27-b118-2a6b077c4286", "created_at": "2024-01-06T15:36:24.144617+00:00", "updated_at": "2024-01-06T15:36:24.147183+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/759c41f6-d890-4a27-b118-2a6b077c4286", "rel": "self"}, {"href": "http://localhost/allocations/759c41f6-d890-4a27-b118-2a6b077c4286", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +API ACL Testing Path delete /v1/allocations/368f3923-fcae-4f83-bf97-7035bafa56c2 +DELETE: /v1/allocations/368f3923-fcae-4f83-bf97-7035bafa56c2 ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_405_owner_admin_can_delete_their_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_405_owner_admin_can_delete_their_allocation ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_uefi -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_uefi ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_deploy_info -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_deploy_info ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported -ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported ... ok -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id ... ok -ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper -ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6 -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6 ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_173_volume_connectors_post_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_173_volume_connectors_post_member ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port ... ok +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down ... ok +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_191_volume_volume_target_id_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_191_volume_volume_target_id_get_member ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_force_reboot +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_force_reboot ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_406_owner_manager_can_delete_their_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_406_owner_manager_can_delete_their_allocation ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_default_mode -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_default_mode ... ok -ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper -ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6_uefi -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6_uefi ... ok -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_create -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_create ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state ... ok -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_destroy -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_destroy ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_invalid_params -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_invalid_params ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_174_volume_connectors_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_174_volume_connectors_post_observer ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_soft_poweroff_retry +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_soft_poweroff_retry ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_192_volume_volume_target_id_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_192_volume_volume_target_id_get_observer ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_localboot +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_localboot ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_407_lessee_admin_can_delete_their_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_407_lessee_admin_can_delete_their_allocation ... ok -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type ... ok -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_id -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_id ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_rescue_mode -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_rescue_mode ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states ... ok -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_uuid -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_uuid ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_175_volume_volume_connector_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_175_volume_volume_connector_id_get_admin ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_http_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_http_image ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_193_volume_volume_target_id_patch_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_193_volume_volume_target_id_patch_admin ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_no_manage_agent_boot +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_no_manage_agent_boot ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_408_lessee_manager_can_delete_their_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_408_lessee_manager_can_delete_their_allocation ... ok -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list ... ok -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_volume_type -ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_volume_type ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id ... ok -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_by_node_id -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_by_node_id ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_https_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_https_image ... ok -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail ... ok -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ... ok -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_none -ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_none ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_176_volume_volume_connector_id_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_176_volume_volume_connector_id_get_member ... ok -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-77aa406f-5b7e-47d4-b45d-b429e04da9ba -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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.80"}, "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"}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-77aa406f-5b7e-47d4-b45d-b429e04da9ba -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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.80"}, "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"}]} -API ACL Testing Path get /v1.xml -GET: /v1.xml {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_instance_image_info -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_instance_image_info ... ok -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail_on_power_on -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail_on_power_on ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_409_owner_member_can_delete_their_allocation -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_409_owner_member_can_delete_their_allocation ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh ... ok -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_instance -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_instance ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off ... ok -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity ... ok -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_177_volume_volume_connector_id_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_177_volume_volume_connector_id_get_observer ... ok -This is badironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_ramdisk -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_ramdisk ... ok -GET: / {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-8d522af7-1ae2-4684-b075-2eb6301b564d -{"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}"} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-1c094df2-61aa-4f43-abf7-862fc97e75a1 -{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-8fdc2975-92fb-499a-8021-e60b7dd82287 -{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-c1478576-8c72-43f5-b85d-47ad647deea7 -{"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 \\\"/build/reproducible-path/ironic-21.1.0/ironic/api/method.py\\\", line 42, in callfunction\\n result = f(self, *args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/build/reproducible-path/ironic-21.1.0/ironic/api/controllers/root.py\\\", line 43, in index\\n return root()\\n ^^^^^^\\n\\n File \\\"\\\", line 3, in root\\n\\n File \\\"/usr/lib/python3.11/unittest/mock.py\\\", line 1118, in __call__\\n return self._mock_call(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/usr/lib/python3.11/unittest/mock.py\\\", line 1122, in _mock_call\\n return self._execute_mock_call(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/usr/lib/python3.11/unittest/mock.py\\\", line 1177, 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\"}"} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-79a9e974-0ab4-4b95-bc62-e5d5d872206c -{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-f966aabe-b1c8-4cb8-82f4-5b0380d2e26a -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-e6421681-3f01-4255-9bbb-351e81bc4b48 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-dfc14b30-3363-44d5-b208-2b2796f38eda -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": \"Traceback (most recent call last):\\n\\n File \\\"/build/reproducible-path/ironic-21.1.0/ironic/api/method.py\\\", line 42, in callfunction\\n result = f(self, *args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/build/reproducible-path/ironic-21.1.0/ironic/api/controllers/root.py\\\", line 43, in index\\n return root()\\n ^^^^^^\\n\\n File \\\"\\\", line 3, in root\\n\\n File \\\"/usr/lib/python3.11/unittest/mock.py\\\", line 1118, in __call__\\n return self._mock_call(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/usr/lib/python3.11/unittest/mock.py\\\", line 1122, in _mock_call\\n return self._execute_mock_call(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n File \\\"/usr/lib/python3.11/unittest/mock.py\\\", line 1177, in _execute_mock_call\\n raise effect\\n\\nException: Error message without traceback \\n but \\n multiline\\n\"}"} -foo() migrated 15 of 15 objects. -func1() migrated 15 of 15 objects. -func2() migrated 20 of 20 objects. -func1() migrated 10 of 10 objects. -func2() migrated 0 of 0 objects. -func1() migrated 10 of 15 objects. -func1() migrated 10 of 10 objects. -func1() migrated 10 of 10 objects. -func1() migrated 0 of 0 objects. -func2() migrated 0 of 0 objects. -Running batches of 50 until migrations have been completed. -Data migrations have completed. -Running batches of 50 until migrations have been completed. -Data migrations have completed. -Running batches of 50 until migrations have been completed. -Malformed option m1key1=value1 -Malformed option m1.key1value1 -Data migrations have not completed. Please re-run. -Running batches of 50 until migrations have been completed. -Data migrations have completed. -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_on -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_on ... ok -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_410_lessee_member_can_delete_their_allocation -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_410_lessee_member_can_delete_their_allocation ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_boot_ramdisk -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_boot_ramdisk ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_178_volume_volume_connector_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_178_volume_volume_connector_id_patch_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_local_or_whole_disk_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_local_or_whole_disk_image ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_partition_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_partition_image ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_411_owner_member_can_patch_allocation -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_411_owner_member_can_patch_allocation ... ok -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_with_step_name -ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_with_step_name ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_179_volume_volume_connector_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_179_volume_volume_connector_id_patch_member ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image ... ok -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image_cleaning -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image_cleaning ... ok -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_write_image +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_write_image ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_image +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_image ... ok +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0ff9a264-9b6b-427a-bc81-7e1fc1541296 +Openstack-Request-Id: req-45508d12-0ee8-404f-9a34-6156b2529c2e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume -GET: /v1/volume {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-392c543b-0c82-4a22-916f-4888e06902b1 +Openstack-Request-Id: req-3cbf06e3-58a0-41a9-a81d-dcaf1b502717 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume -GET: /v1/volume {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c19447ca-1f01-4359-8b20-106e409a7e17 +Openstack-Request-Id: req-4931f610-7789-4224-b18c-b08deba70efe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume -GET: /v1/volume {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-de270a26-7edb-4607-bd23-11cf571884a1 +Openstack-Request-Id: req-2f2f1cf5-c6f4-47e5-8c76-8cc1dad9570a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/connectors -GET: /v1/volume/connectors {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/targets +GET: /v1/volume/targets {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a3fddb40-15d3-4cb7-a039-7f51c3536d49 +Openstack-Request-Id: req-80421342-1e26-4da3-9ff2-be1749c1d7b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/connectors -GET: /v1/volume/connectors {} +API ACL Testing Path get /v1/volume/targets +GET: /v1/volume/targets {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-2d88bec0-052a-429f-bf7c-3a00b192f49d +Openstack-Request-Id: req-47fc7a93-ed99-4a00-a974-e6994bec1e12 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/connectors -GET: /v1/volume/connectors {} +API ACL Testing Path get /v1/volume/targets +GET: /v1/volume/targets {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-4ee27222-dfba-43d1-97d2-f86998063074 +Openstack-Request-Id: req-afb20fe1-b6c3-4ecd-969e-c672333768ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/volume/connectors -POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} +API ACL Testing Path post /v1/volume/targets +POST: /v1/volume/targets {'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-f35d8864-c4c2-48dc-88a4-f9a6c74c1775 +Openstack-Request-Id: req-b49d0e5a-9760-4e45-a83c-cab30838f685 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/volume/connectors -POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} +API ACL Testing Path post /v1/volume/targets +POST: /v1/volume/targets {'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-9d92a654-0b3d-4334-ac2d-5238cf4738b7 +Openstack-Request-Id: req-037678a2-900d-4835-95a7-0a5a3cad37d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/volume/connectors -POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} +API ACL Testing Path post /v1/volume/targets +POST: /v1/volume/targets {'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-3bccee33-1031-436e-9a60-669d34f4a44d +Openstack-Request-Id: req-8a888c0f-ee58-4069-a693-bdde17c1f9bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-2d25c12b-948f-44c4-965a-22226f8eba8c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-93b6260a-2b52-4db4-8e21-ad065b9d6355 +Openstack-Request-Id: req-bcae7b95-2c60-4e6f-af79-e9e1b0fc98ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3df3856d-1976-43cc-9fd1-bf6f5a0b8017 +Openstack-Request-Id: req-8ef1fc31-614c-45db-8f54-816de2443468 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7c807ed4-c960-4ea0-8092-e46e95262b8e +Openstack-Request-Id: req-aab24fc3-ed02-4a30-98c4-ec44782d8ad3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-384e17fa-c2f1-497f-aaa6-9cb6c4266c27 +Openstack-Request-Id: req-e88b1744-d75f-45f9-a097-0cd1f2766e16 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_194_volume_volume_target_id_patch_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_194_volume_volume_target_id_patch_member ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__change_physical_disk_state_attribute_error +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__change_physical_disk_state_attribute_error ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_409_owner_member_can_delete_their_allocation +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_409_owner_member_can_delete_their_allocation ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_localboot_ppc64 +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_localboot_ppc64 ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_410_lessee_member_can_delete_their_allocation +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_410_lessee_member_can_delete_their_allocation ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_convert_controller +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_convert_controller ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_storage_should_write_image_with_smartnic +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_storage_should_write_image_with_smartnic ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_failed +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_failed ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_411_owner_member_can_patch_allocation +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_411_owner_member_can_patch_allocation ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_195_volume_volume_target_id_patch_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_195_volume_volume_target_id_patch_observer ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_still_processing +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_still_processing ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__clear_foreign_config_attribute_error +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__clear_foreign_config_attribute_error ... ok +ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-5c2a50fd-39ba-4e76-80af-874dd787cdd7 +Openstack-Request-Id: req-659d14d9-86bf-4572-bcfb-1fe21c2f1ce0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-5c2a50fd-39ba-4e76-80af-874dd787cdd7 +Openstack-Request-Id: req-659d14d9-86bf-4572-bcfb-1fe21c2f1ce0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/2fd130e6-636e-4ee3-8298-68a15e60d5be -DELETE: /v1/allocations/2fd130e6-636e-4ee3-8298-68a15e60d5be +API ACL Testing Path delete /v1/allocations/fedfa450-067e-47b0-b95d-25e5d7f4219b +DELETE: /v1/allocations/fedfa450-067e-47b0-b95d-25e5d7f4219b GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-747483e3-c439-44ed-bddf-148549a74e20 +Openstack-Request-Id: req-84a57b45-395c-41b9-9927-fd8f37c7a99e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-747483e3-c439-44ed-bddf-148549a74e20 +Openstack-Request-Id: req-84a57b45-395c-41b9-9927-fd8f37c7a99e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/c67b24f3-246c-48a1-92f0-8bcbf5867587 -DELETE: /v1/allocations/c67b24f3-246c-48a1-92f0-8bcbf5867587 +API ACL Testing Path delete /v1/allocations/6fe202c0-fd95-42d5-963c-5b393e330ddf +DELETE: /v1/allocations/6fe202c0-fd95-42d5-963c-5b393e330ddf GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-9ed5a253-a3c8-4996-84d0-73fbbdd02ac1 +Openstack-Request-Id: req-149cffc1-6e70-4b31-8e24-ded917b54c56 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-9ed5a253-a3c8-4996-84d0-73fbbdd02ac1 +Openstack-Request-Id: req-149cffc1-6e70-4b31-8e24-ded917b54c56 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/6c2839a0-25e5-4584-85cc-401a250b5a0c -DELETE: /v1/allocations/6c2839a0-25e5-4584-85cc-401a250b5a0c +API ACL Testing Path delete /v1/allocations/78c335ba-fbb3-4080-865d-7534671f3b7e +DELETE: /v1/allocations/78c335ba-fbb3-4080-865d-7534671f3b7e GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d8d4d3d3-998a-4dd4-aa11-ca9562540fb9 +Openstack-Request-Id: req-84643b81-b3a1-46e5-b8f6-74ac149c1627 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d8d4d3d3-998a-4dd4-aa11-ca9562540fb9 +Openstack-Request-Id: req-84643b81-b3a1-46e5-b8f6-74ac149c1627 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/bf2f0b7d-c0d4-43e9-bc81-5e9c41be3740 -DELETE: /v1/allocations/bf2f0b7d-c0d4-43e9-bc81-5e9c41be3740 +API ACL Testing Path delete /v1/allocations/03ae54bf-27b7-47e0-a7e1-d02cebcdc3c4 +DELETE: /v1/allocations/03ae54bf-27b7-47e0-a7e1-d02cebcdc3c4 GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d61d2fa2-271a-4815-bb12-9365404095d9 +Openstack-Request-Id: req-e2b2a559-133c-4b80-ad4f-38788fcb74e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d61d2fa2-271a-4815-bb12-9365404095d9 +Openstack-Request-Id: req-e2b2a559-133c-4b80-ad4f-38788fcb74e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/2c6e7ac9-a61c-4d6f-a5f1-e5bdaa725522 -DELETE: /v1/allocations/2c6e7ac9-a61c-4d6f-a5f1-e5bdaa725522 +API ACL Testing Path delete /v1/allocations/fbad38a5-1dc3-4965-9f97-15639da2bb2c +DELETE: /v1/allocations/fbad38a5-1dc3-4965-9f97-15639da2bb2c GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f0edeb2f-5ecc-4bac-90a2-effbab96f278 +Openstack-Request-Id: req-91d45a57-2b99-40d3-a190-cbb21de09a00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-f0edeb2f-5ecc-4bac-90a2-effbab96f278 +Openstack-Request-Id: req-91d45a57-2b99-40d3-a190-cbb21de09a00 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/bcf35574-6ff5-4159-9721-38d15671ddf9 -PATCH: /v1/allocations/bcf35574-6ff5-4159-9721-38d15671ddf9 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +API ACL Testing Path patch /v1/allocations/aed14ecc-e055-47f3-bb2d-5e89ddbfba59 +PATCH: /v1/allocations/aed14ecc-e055-47f3-bb2d-5e89ddbfba59 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f1b2e279-a4d7-441c-be27-9fec151beedf +Openstack-Request-Id: req-23666fb2-20b3-46fa-bc7a-c244f6258099 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "bcf35574-6ff5-4159-9721-38d15671ddf9", "created_at": "2025-02-07T21:37:11.251509+00:00", "updated_at": "2025-02-07T21:37:11.481741+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/bcf35574-6ff5-4159-9721-38d15671ddf9", "rel": "self"}, {"href": "http://localhost/allocations/bcf35574-6ff5-4159-9721-38d15671ddf9", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +{"uuid": "aed14ecc-e055-47f3-bb2d-5e89ddbfba59", "created_at": "2024-01-06T15:36:25.101687+00:00", "updated_at": "2024-01-06T15:36:25.153265+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/aed14ecc-e055-47f3-bb2d-5e89ddbfba59", "rel": "self"}, {"href": "http://localhost/allocations/aed14ecc-e055-47f3-bb2d-5e89ddbfba59", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f1b2e279-a4d7-441c-be27-9fec151beedf +Openstack-Request-Id: req-23666fb2-20b3-46fa-bc7a-c244f6258099 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "bcf35574-6ff5-4159-9721-38d15671ddf9", "created_at": "2025-02-07T21:37:11.251509+00:00", "updated_at": "2025-02-07T21:37:11.481741+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/bcf35574-6ff5-4159-9721-38d15671ddf9", "rel": "self"}, {"href": "http://localhost/allocations/bcf35574-6ff5-4159-9721-38d15671ddf9", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} -API ACL Testing Path patch /v1/allocations/35fea3a5-6439-44ec-b3ff-ee6b528e4f94 -PATCH: /v1/allocations/35fea3a5-6439-44ec-b3ff-ee6b528e4f94 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"uuid": "aed14ecc-e055-47f3-bb2d-5e89ddbfba59", "created_at": "2024-01-06T15:36:25.101687+00:00", "updated_at": "2024-01-06T15:36:25.153265+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/aed14ecc-e055-47f3-bb2d-5e89ddbfba59", "rel": "self"}, {"href": "http://localhost/allocations/aed14ecc-e055-47f3-bb2d-5e89ddbfba59", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +API ACL Testing Path patch /v1/allocations/cec09a96-038f-404b-ad57-e651ea5725b2 +PATCH: /v1/allocations/cec09a96-038f-404b-ad57-e651ea5725b2 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_412_lessee_member_can_patch_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_412_lessee_member_can_patch_allocation ... ok -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_180_volume_volume_connector_id_patch_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_180_volume_volume_connector_id_patch_observer ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_middle_of_clean_step -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_middle_of_clean_step ... ok -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_196_volume_volume_target_id_delete_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_196_volume_volume_target_id_delete_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode ... ok +ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management +ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_413_third_party_admin_can_get_allocations ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_413_third_party_admin_can_get_allocations ... ok -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_181_volume_volume_connector_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_181_volume_volume_connector_id_delete_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image ... ok -ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist -ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist ... ok -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on ... ok -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_no_conversion +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_no_conversion ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_197_volume_volume_target_id_delete_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_197_volume_volume_target_id_delete_member ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_not_raid +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_not_raid ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_414_third_party_admin_can_create_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_414_third_party_admin_can_create_allocation ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_182_volume_volume_connector_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_182_volume_volume_connector_id_delete_member ... ok -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot ... ok -ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly -ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_glance_image ... ok -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_fail -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_fail ... ok -ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception -ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_idrac +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_idrac ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_198_volume_volume_target_id_delete_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_198_volume_volume_target_id_delete_observer ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_415_third_party_admin_cannot_create_allocation_with_owner_node ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_415_third_party_admin_cannot_create_allocation_with_owner_node ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image ... ok -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_not_reached -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_not_reached ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_183_volume_volume_connector_id_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_183_volume_volume_connector_id_delete_observer ... ok -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_timeout -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_timeout ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_199_nodes_volume_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_199_nodes_volume_get_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy_oem +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy_oem ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__get_storage_controller_invalid_identity +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__get_storage_controller_invalid_identity ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_200_nodes_volume_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_200_nodes_volume_get_member ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__is_realtime_ready +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__is_realtime_ready ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_416_third_party_admin_cannot_create_allocation_with_candidates_not_owned ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_416_third_party_admin_cannot_create_allocation_with_candidates_not_owned ... ok -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_on ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_184_volume_targets_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_184_volume_targets_get_admin ... ok -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_port_cleaned -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_port_cleaned ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection_missing -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection_missing ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_201_nodes_volume_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_201_nodes_volume_get_observer ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status_no_task_monitor_url +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status_no_task_monitor_url ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_417_owner_admin_can_create_allocation_with_their_uuid ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_417_owner_admin_can_create_allocation_with_their_uuid ... ok -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage ... ok -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_empty -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_empty ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_185_volume_targets_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_185_volume_targets_get_member ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_glance -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_glance ... ok -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated ... ok -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot ... ok -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_dict -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_dict ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver ... ok -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system ... ok -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_string -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_string ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_186_volume_targets_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_186_volume_targets_get_observer ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_exceeded +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_exceeded ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_202_nodes_volume_connectors_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_202_nodes_volume_connectors_get_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_fails +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_fails ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_418_owner_manager_can_create_allocation_with_their_uuid ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_418_owner_manager_can_create_allocation_with_their_uuid ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver_exc -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver_exc ... ok -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive ... ok -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system_exception -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system_exception ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure ... ok -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string -ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue ... ok -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_clean +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_clean ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_203_nodes_volume_connectors_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_203_nodes_volume_connectors_get_member ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_419_third_party_admin_cannot_read_an_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_419_third_party_admin_cannot_read_an_allocation ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_187_volume_targets_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_187_volume_targets_post_admin ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout ... ok -ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps -ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue_no_rescue_ramdisk -ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue_no_rescue_ramdisk ... ok -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict ... ok -ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_no_skip -ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_no_skip ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_clean +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_clean ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_file_image_no_checksum +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_file_image_no_checksum ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_204_nodes_volume_connectors_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_204_nodes_volume_connectors_get_observer ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_deploy +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_deploy ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params ... ok GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e612af65-534b-4c10-82d2-684e5133f5e7 +Openstack-Request-Id: req-078ad0f6-88fb-46ac-b996-dd8fb8671e67 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "35fea3a5-6439-44ec-b3ff-ee6b528e4f94", "created_at": "2025-02-07T21:37:12.183858+00:00", "updated_at": "2025-02-07T21:37:12.418274+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/35fea3a5-6439-44ec-b3ff-ee6b528e4f94", "rel": "self"}, {"href": "http://localhost/allocations/35fea3a5-6439-44ec-b3ff-ee6b528e4f94", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +{"uuid": "cec09a96-038f-404b-ad57-e651ea5725b2", "created_at": "2024-01-06T15:36:25.266110+00:00", "updated_at": "2024-01-06T15:36:25.309842+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/cec09a96-038f-404b-ad57-e651ea5725b2", "rel": "self"}, {"href": "http://localhost/allocations/cec09a96-038f-404b-ad57-e651ea5725b2", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e612af65-534b-4c10-82d2-684e5133f5e7 +Openstack-Request-Id: req-078ad0f6-88fb-46ac-b996-dd8fb8671e67 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "35fea3a5-6439-44ec-b3ff-ee6b528e4f94", "created_at": "2025-02-07T21:37:12.183858+00:00", "updated_at": "2025-02-07T21:37:12.418274+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/35fea3a5-6439-44ec-b3ff-ee6b528e4f94", "rel": "self"}, {"href": "http://localhost/allocations/35fea3a5-6439-44ec-b3ff-ee6b528e4f94", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +{"uuid": "cec09a96-038f-404b-ad57-e651ea5725b2", "created_at": "2024-01-06T15:36:25.266110+00:00", "updated_at": "2024-01-06T15:36:25.309842+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/cec09a96-038f-404b-ad57-e651ea5725b2", "rel": "self"}, {"href": "http://localhost/allocations/cec09a96-038f-404b-ad57-e651ea5725b2", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} API ACL Testing Path get /v1/allocations GET: /v1/allocations {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bbd298d0-a3cc-4ac7-8d26-fa7f4c7e469e +Openstack-Request-Id: req-dc75c843-9146-40ae-b99f-e96e49be37d2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"allocations": []} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bbd298d0-a3cc-4ac7-8d26-fa7f4c7e469e +Openstack-Request-Id: req-dc75c843-9146-40ae-b99f-e96e49be37d2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -51341,14 +51896,14 @@ POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a1d0d3ca-bb13-4ccf-a31a-d7b1929ab6d3 +Openstack-Request-Id: req-5586f31b-35c6-41b2-95b5-fa2036eb0ff2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-a1d0d3ca-bb13-4ccf-a31a-d7b1929ab6d3 +Openstack-Request-Id: req-5586f31b-35c6-41b2-95b5-fa2036eb0ff2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -51357,14 +51912,14 @@ POST: /v1/allocations {'resource_class': 'CUSTOM_TEST', 'node': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8c6b8a8a-6fc4-490a-8fdc-44763ff44f7a +Openstack-Request-Id: req-5a7f635f-aba7-45fb-a0f8-e4f7ca4ec1d2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8c6b8a8a-6fc4-490a-8fdc-44763ff44f7a +Openstack-Request-Id: req-5a7f635f-aba7-45fb-a0f8-e4f7ca4ec1d2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -51373,14 +51928,14 @@ POST: /v1/allocations {'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-6d9545e6-2a22-46d6-a072-d1caddb91ff2 +Openstack-Request-Id: req-dc7eb740-4dd9-4e81-a39a-4f8412721818 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881, 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f\", \"debuginfo\": null}"} ACL Test GOT Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6d9545e6-2a22-46d6-a072-d1caddb91ff2 +Openstack-Request-Id: req-dc7eb740-4dd9-4e81-a39a-4f8412721818 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -51389,14 +51944,14 @@ POST: /v1/allocations {'resource_class': 'CUSTOM_TEST', 'node': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d4e29fec-0c4c-4bae-81a3-c72354e72d67 +Openstack-Request-Id: req-1fe8b68d-de2f-4e63-b8e0-4f7b6b74a6b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-d4e29fec-0c4c-4bae-81a3-c72354e72d67 +Openstack-Request-Id: req-1fe8b68d-de2f-4e63-b8e0-4f7b6b74a6b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -51405,569 +51960,428 @@ POST: /v1/allocations {'resource_class': 'CUSTOM_TEST', 'node': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'} GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-193da380-3514-403c-b9a8-ef1c238d2d8b +Openstack-Request-Id: req-e044385c-deab-48e5-a851-084009a0239a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-193da380-3514-403c-b9a8-ef1c238d2d8b +Openstack-Request-Id: req-e044385c-deab-48e5-a851-084009a0239a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations/585ede38-8a87-434f-ae92-8d2a7f207de3 -GET: /v1/allocations/585ede38-8a87-434f-ae92-8d2a7f207de3 {} +API ACL Testing Path get /v1/allocations/0e329194-1486-47e7-9a2f-366887efceb9 +GET: /v1/allocations/0e329194-1486-47e7-9a2f-366887efceb9 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f73e79f9-2ef2-413b-bf10-cc64d65ddb40 +Openstack-Request-Id: req-2ff55448-5d5d-4de7-8846-9ab19c2376ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 585ede38-8a87-434f-ae92-8d2a7f207de3 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 0e329194-1486-47e7-9a2f-366887efceb9 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f73e79f9-2ef2-413b-bf10-cc64d65ddb40 +Openstack-Request-Id: req-2ff55448-5d5d-4de7-8846-9ab19c2376ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 585ede38-8a87-434f-ae92-8d2a7f207de3 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 0e329194-1486-47e7-9a2f-366887efceb9 could not be found.\", \"debuginfo\": null}"} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_420_third_party_admin_cannot_patch_an_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_420_third_party_admin_cannot_patch_an_allocation ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_gpu_capabilities -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_gpu_capabilities ... ok -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_create_subscription -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_create_subscription ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_188_volume_targets_post_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_188_volume_targets_post_member ... ok -ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_unset_clean_step -ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_unset_clean_step ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode ... ok +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +DELETE: /v1/ +GOT:Response: 405 Method Not Allowed +Content-Type: application/json +Openstack-Request-Id: req-7161bfa2-53a4-4ecb-91bc-cbba67afa709 +X-Openstack-Ironic-Api-Maximum-Version: 1.80 +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}"} +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_image_type +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_image_type ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_205_nodes_volume_targets_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_205_nodes_volume_targets_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_421_third_party_admin_cannot_delete_an_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_421_third_party_admin_cannot_delete_an_allocation ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_operation_exeption -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_operation_exeption ... ok -ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps -ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_189_volume_targets_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_189_volume_targets_post_observer ... ok -ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_no_skip -ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_no_skip ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready_retryerror +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready_retryerror ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_create_configuration +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_create_configuration ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_206_nodes_volume_targets_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_206_nodes_volume_targets_get_member ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_delete_configuration +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_delete_configuration ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_422_owner_reader_can_read_node_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_422_owner_reader_can_read_node_allocation ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on ... ok -ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_unset_deploy_step -ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_unset_deploy_step ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_190_volume_volume_target_id_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_190_volume_volume_target_id_get_admin ... ok -ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_steps_exception -ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_steps_exception ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints_iinfo +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints_iinfo ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_async +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_async ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_207_nodes_volume_targets_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_207_nodes_volume_targets_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_423_lessee_reader_can_read_node_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_423_lessee_reader_can_read_node_allocation ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_191_volume_volume_target_id_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_191_volume_volume_target_id_get_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_sync +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_sync ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum_os_algo +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum_os_algo ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_no_subtasks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_no_subtasks ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_424_third_party_admin_cannot_read_node_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_424_third_party_admin_cannot_read_node_allocation ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false -ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_port -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_port ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true -ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true ... ok -ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value -ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_192_volume_volume_target_id_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_192_volume_volume_target_id_get_observer ... ok -ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value -ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_425_owner_admin_can_delete_allocation -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_425_owner_admin_can_delete_allocation ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing ... ok -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped -ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_193_volume_volume_target_id_patch_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_193_volume_volume_target_id_patch_admin ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default ... ok -API ACL Testing Path patch /v1/allocations/909ee145-2436-428f-850e-b0264e19ac20 -PATCH: /v1/allocations/909ee145-2436-428f-850e-b0264e19ac20 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_algo +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_algo ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d0f99a20-b920-4857-a2df-aad642f9bda7 +Openstack-Request-Id: req-d8ecd661-e250-49e5-81d0-6fc1f15b526a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 909ee145-2436-428f-850e-b0264e19ac20 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d0f99a20-b920-4857-a2df-aad642f9bda7 +Openstack-Request-Id: req-6b10ed42-04d3-4db1-8d36-139a40d04eed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 909ee145-2436-428f-850e-b0264e19ac20 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/2d24f2a3-68ff-4847-bb07-7a0f28952750 -DELETE: /v1/allocations/2d24f2a3-68ff-4847-bb07-7a0f28952750 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7e1b0fc1-8e88-4217-a143-9ecb43bb4add +Openstack-Request-Id: req-17e38ec8-9af6-4bc1-ae4f-f166700a6004 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 2d24f2a3-68ff-4847-bb07-7a0f28952750 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7e1b0fc1-8e88-4217-a143-9ecb43bb4add +Openstack-Request-Id: req-7610ca34-44a9-4bd6-b42f-91f00590b79e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 2d24f2a3-68ff-4847-bb07-7a0f28952750 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6dcfeba6-9f69-4863-a70c-c26eabf65fbe +Openstack-Request-Id: req-2ea8718d-8653-4b25-b39d-e255b5465258 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ce96fe5b-4796-48e3-a5af-75d1ba463ffa", "created_at": "2025-02-07T21:37:20.885706+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/ce96fe5b-4796-48e3-a5af-75d1ba463ffa", "rel": "self"}, {"href": "http://localhost/allocations/ce96fe5b-4796-48e3-a5af-75d1ba463ffa", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6dcfeba6-9f69-4863-a70c-c26eabf65fbe +Openstack-Request-Id: req-aa77e69c-7d21-4440-bfa5-17d8b0b58900 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "ce96fe5b-4796-48e3-a5af-75d1ba463ffa", "created_at": "2025-02-07T21:37:20.885706+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/ce96fe5b-4796-48e3-a5af-75d1ba463ffa", "rel": "self"}, {"href": "http://localhost/allocations/ce96fe5b-4796-48e3-a5af-75d1ba463ffa", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} -API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation -GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation {} -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-def9f4a6-b2a3-4444-a8be-f12414bcca08 +Openstack-Request-Id: req-687b071f-7feb-4d71-b088-2005870ce299 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "69a53b83-0c29-4462-a9ec-dae357565e59", "created_at": "2025-02-07T21:37:21.359167+00:00", "updated_at": "2025-02-07T21:37:21.361476+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/69a53b83-0c29-4462-a9ec-dae357565e59", "rel": "self"}, {"href": "http://localhost/allocations/69a53b83-0c29-4462-a9ec-dae357565e59", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} -ACL Test GOT Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-def9f4a6-b2a3-4444-a8be-f12414bcca08 +Openstack-Request-Id: req-d8644ad6-6188-4ec6-901c-c1f709609128 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "69a53b83-0c29-4462-a9ec-dae357565e59", "created_at": "2025-02-07T21:37:21.359167+00:00", "updated_at": "2025-02-07T21:37:21.361476+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/69a53b83-0c29-4462-a9ec-dae357565e59", "rel": "self"}, {"href": "http://localhost/allocations/69a53b83-0c29-4462-a9ec-dae357565e59", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2b0cf7d8-300b-4fb1-9208-853ea1e3e76f +Openstack-Request-Id: req-9eba4ed7-4d61-49f6-bf8f-ad6609f65005 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2b0cf7d8-300b-4fb1-9208-853ea1e3e76f +Openstack-Request-Id: req-af2e495a-627a-4600-abc4-5aea03ff74c3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation -DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-55fe36cc-0777-404d-84b5-af5b6481d6a6 +Openstack-Request-Id: req-3af85f58-1094-4e84-91b7-a92e7d647e1d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ACL Test GOT Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-55fe36cc-0777-404d-84b5-af5b6481d6a6 +Openstack-Request-Id: req-4e39b81f-cc27-480b-8590-f04664947375 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation -DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation -GOT:Response: 503 Service Unavailable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3b4800a5-b260-40e9-8df2-29fa31452da1 +Openstack-Request-Id: req-c0110396-69cc-4058-aac4-74a888630c6a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_426_owner_manager_can_delete_allocation -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_426_owner_manager_can_delete_allocation ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level ... ok -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b841683e-cf6d-4fea-b4c4-d79d1edfb69b +Openstack-Request-Id: req-0c12c44d-dd7d-414a-a746-20c1e521c5fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers +GET: /v1/drivers {} +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_208_drivers_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_208_drivers_get_admin ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_pre_create_configuration +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_pre_create_configuration ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_209_drivers_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_209_drivers_get_member ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_validate_correct_vendor +ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_validate_correct_vendor ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_checksum +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_checksum ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_425_owner_admin_can_delete_allocation +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_425_owner_admin_can_delete_allocation ... ok +Exception ignored in: +Traceback (most recent call last): + File "/usr/lib/python3.11/tempfile.py", line 589, in __del__ + File "/usr/lib/python3.11/tempfile.py", line 585, in close +FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmplyz5l7q7/tmp_ihmtuej' +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_image_hash +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_image_hash ... ok +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_210_drivers_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_210_drivers_get_observer ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false ... ok +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_fail +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_fail ... ok +API ACL Testing Path patch /v1/allocations/ee0b440f-e330-451e-9ba5-56349163adcb +PATCH: /v1/allocations/ee0b440f-e330-451e-9ba5-56349163adcb [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-65c2cbb1-e27e-46c8-89e3-b70d5d38173f +Openstack-Request-Id: req-2d6eaba4-c284-4997-9955-c801b21c91e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation ee0b440f-e330-451e-9ba5-56349163adcb could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4c2162ec-b045-4976-8ac8-b5df84b743c8 +Openstack-Request-Id: req-2d6eaba4-c284-4997-9955-c801b21c91e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation ee0b440f-e330-451e-9ba5-56349163adcb could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/76442164-ca16-4307-b428-5ab3cbdb3057 +DELETE: /v1/allocations/76442164-ca16-4307-b428-5ab3cbdb3057 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d8795eab-7758-455d-8340-20bcc3d248db +Openstack-Request-Id: req-bd2ffd99-d7f0-4917-ab6a-17c220da5708 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/targets -GET: /v1/volume/targets {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 76442164-ca16-4307-b428-5ab3cbdb3057 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fb7abf7e-8274-41ca-a49e-ad52661aeb85 +Openstack-Request-Id: req-bd2ffd99-d7f0-4917-ab6a-17c220da5708 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/targets -GET: /v1/volume/targets {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 76442164-ca16-4307-b428-5ab3cbdb3057 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0467802e-a3d3-49b5-8c86-ad74e77edc28 +Openstack-Request-Id: req-b1a9093a-dd98-4a84-9f59-1e123abcc113 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/targets -GET: /v1/volume/targets {} -GOT:Response: 403 Forbidden +{"uuid": "23681a5a-d9d0-4287-857e-2c185203ea13", "created_at": "2024-01-06T15:36:26.954588+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/23681a5a-d9d0-4287-857e-2c185203ea13", "rel": "self"}, {"href": "http://localhost/allocations/23681a5a-d9d0-4287-857e-2c185203ea13", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bf0b76a3-b65c-4241-86b4-4589c0dfff27 +Openstack-Request-Id: req-b1a9093a-dd98-4a84-9f59-1e123abcc113 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/volume/targets -POST: /v1/volume/targets {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} -GOT:Response: 403 Forbidden +{"uuid": "23681a5a-d9d0-4287-857e-2c185203ea13", "created_at": "2024-01-06T15:36:26.954588+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/23681a5a-d9d0-4287-857e-2c185203ea13", "rel": "self"}, {"href": "http://localhost/allocations/23681a5a-d9d0-4287-857e-2c185203ea13", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} +API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation +GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5f7b9f9f-9e32-4671-90e5-189e95f923da +Openstack-Request-Id: req-72274be5-b822-4709-a4cb-d9c3b934294c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/volume/targets -POST: /v1/volume/targets {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} -GOT:Response: 403 Forbidden +{"uuid": "221f995a-47aa-4d3d-98ee-3b6cc75fd8d4", "created_at": "2024-01-06T15:36:27.084413+00:00", "updated_at": "2024-01-06T15:36:27.086554+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/221f995a-47aa-4d3d-98ee-3b6cc75fd8d4", "rel": "self"}, {"href": "http://localhost/allocations/221f995a-47aa-4d3d-98ee-3b6cc75fd8d4", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6c1d97e8-f939-4dd5-b673-ea2eb0da5f55 +Openstack-Request-Id: req-72274be5-b822-4709-a4cb-d9c3b934294c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} -API ACL Testing Path post /v1/volume/targets -POST: /v1/volume/targets {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': 'test-id'} -GOT:Response: 403 Forbidden +{"uuid": "221f995a-47aa-4d3d-98ee-3b6cc75fd8d4", "created_at": "2024-01-06T15:36:27.084413+00:00", "updated_at": "2024-01-06T15:36:27.086554+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/221f995a-47aa-4d3d-98ee-3b6cc75fd8d4", "rel": "self"}, {"href": "http://localhost/allocations/221f995a-47aa-4d3d-98ee-3b6cc75fd8d4", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-739d2934-c860-4393-946b-3808ee9786cd +Openstack-Request-Id: req-529d572e-db92-4db1-9c5a-0b9375e0377a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ab395791-95f4-4701-a90c-474fe750790d +Openstack-Request-Id: req-529d572e-db92-4db1-9c5a-0b9375e0377a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation +DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-5a342de9-6984-4e44-8a16-aacee6ef56bf +Openstack-Request-Id: req-624c162e-b0e6-4307-aeec-6381ad4547ba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-ef2ec585-9d55-4f01-b648-226039937c3d +Openstack-Request-Id: req-624c162e-b0e6-4307-aeec-6381ad4547ba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation +DELETE: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/allocation +GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-0fdaac53-8f4d-4540-8e0d-5c3fcfa57374 +Openstack-Request-Id: req-556a8f57-f02d-42cb-96cf-b7734e17f0b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_194_volume_volume_target_id_patch_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_194_volume_volume_target_id_patch_member ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing ... ok +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_426_owner_manager_can_delete_allocation +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_426_owner_manager_can_delete_allocation ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image ... ok +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_not_reached +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_not_reached ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_211_drivers_driver_name_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_211_drivers_driver_name_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_427_lessee_admin_can_delete_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_427_lessee_admin_can_delete_allocation ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_clean -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_clean ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_195_volume_volume_target_id_patch_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_195_volume_volume_target_id_patch_observer ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_deploy -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_deploy ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_image_source_is_url +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_image_source_is_url ... ok +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_timeout +ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_timeout ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_428_lessee_manager_not_delete_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_428_lessee_manager_not_delete_allocation ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_clean -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_clean ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_196_volume_volume_target_id_delete_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_196_volume_volume_target_id_delete_admin ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_partition_image +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_partition_image ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_212_drivers_driver_name_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_212_drivers_driver_name_get_member ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_render_configdrive +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_render_configdrive ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_429_third_party_admin_cannot_delete_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_429_third_party_admin_cannot_delete_allocation ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_deploy -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_deploy ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_213_drivers_driver_name_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_213_drivers_driver_name_get_observer ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_no_proxy_without_proxies +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_no_proxy_without_proxies ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_430_owner_reader_cannot_get_deploy_templates ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_430_owner_reader_cannot_get_deploy_templates ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_197_volume_volume_target_id_delete_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_197_volume_volume_target_id_delete_member ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_with_errors_job -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_with_errors_job ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job ... ok -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail -ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_proxies +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_proxies ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_214_drivers_properties_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_214_drivers_properties_get_admin ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed ... ok +ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps +ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_431_lessee_reader_cannot_get_deploy_templates ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_431_lessee_reader_cannot_get_deploy_templates ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_198_volume_volume_target_id_delete_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_198_volume_volume_target_id_delete_observer ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_clean -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_clean ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_missing ... ok +ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_busy +ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_busy ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_215_drivers_properties_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_215_drivers_properties_get_member ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_432_third_party_admin_cannot_get_deploy_templates ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_432_third_party_admin_cannot_get_deploy_templates ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_deploy -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_deploy ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_199_nodes_volume_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_199_nodes_volume_get_admin ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_set ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_clean -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_clean ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_missing ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_200_nodes_volume_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_200_nodes_volume_get_member ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_default ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_deploy -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_deploy ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_non_default ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 ... ok +ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_deploy +ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_deploy ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_uuid +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_uuid ... ok +ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_interface +ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_interface ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_216_drivers_properties_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_216_drivers_properties_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_433_third_party_admin_cannot_post_deploy_template ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_433_third_party_admin_cannot_post_deploy_template ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_remove ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_from_node -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_from_node ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_201_nodes_volume_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_201_nodes_volume_get_observer ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_drac -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_drac ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_202_nodes_volume_connectors_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_202_nodes_volume_connectors_get_admin ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network ... ok +ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_steps +ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_steps ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_217_drivers_raid_logical_disk_properties_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_217_drivers_raid_logical_disk_properties_get_admin ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_exception +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_exception ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets ... ok ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-3b4800a5-b260-40e9-8df2-29fa31452da1 +Openstack-Request-Id: req-556a8f57-f02d-42cb-96cf-b7734e17f0b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -51976,14 +52390,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-bb2277a3-6537-4de4-bbab-cb4c625b5ddf +Openstack-Request-Id: req-f4d75e5f-fe5d-4f0b-9149-1fb8a6cbef20 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-bb2277a3-6537-4de4-bbab-cb4c625b5ddf +Openstack-Request-Id: req-f4d75e5f-fe5d-4f0b-9149-1fb8a6cbef20 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -51992,14 +52406,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation GOT:Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7e90d906-5b96-43ff-8f31-e7ebe30c7812 +Openstack-Request-Id: req-949599f0-3f9b-4c06-b091-22d40d375364 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json -Openstack-Request-Id: req-7e90d906-5b96-43ff-8f31-e7ebe30c7812 +Openstack-Request-Id: req-949599f0-3f9b-4c06-b091-22d40d375364 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -52008,14 +52422,14 @@ DELETE: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/allocation GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-779543ee-2fcb-42f3-baf4-2a2334df200f +Openstack-Request-Id: req-95f190a6-35a0-48b1-9715-ffd9684fd0cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-779543ee-2fcb-42f3-baf4-2a2334df200f +Openstack-Request-Id: req-95f190a6-35a0-48b1-9715-ffd9684fd0cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -52024,14 +52438,14 @@ GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-5941fdd0-da5b-4810-9a1c-e0a93e77ef80 +Openstack-Request-Id: req-9da1cf2a-0562-4571-abdb-12c362096449 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-5941fdd0-da5b-4810-9a1c-e0a93e77ef80 +Openstack-Request-Id: req-9da1cf2a-0562-4571-abdb-12c362096449 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -52040,14 +52454,14 @@ GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-918786e8-b106-43db-a6d9-818128f09788 +Openstack-Request-Id: req-157cb364-0b6c-4edc-a05b-db894fe74a28 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-918786e8-b106-43db-a6d9-818128f09788 +Openstack-Request-Id: req-157cb364-0b6c-4edc-a05b-db894fe74a28 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -52056,14 +52470,14 @@ GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-3df72297-fdd8-4b28-97e4-381963da2d3f +Openstack-Request-Id: req-6800bbb0-7b8f-40a1-a19a-4d14701c3f2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-3df72297-fdd8-4b28-97e4-381963da2d3f +Openstack-Request-Id: req-6800bbb0-7b8f-40a1-a19a-4d14701c3f2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -52072,316 +52486,213 @@ POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-c98fd8dc-29f5-47f3-b4d5-b972309bd0c2 +Openstack-Request-Id: req-f15b024a-4b41-4525-8ab6-1f751db4f08a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-c98fd8dc-29f5-47f3-b4d5-b972309bd0c2 +Openstack-Request-Id: req-f15b024a-4b41-4525-8ab6-1f751db4f08a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis GET: /v1/chassis {} -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_auto -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_auto ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_drac_wsman -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_drac_wsman ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_434_owner_reader_cannot_access_chassis ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_434_owner_reader_cannot_access_chassis ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_basic -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_basic ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs_drac -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs_drac ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_203_nodes_volume_connectors_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_203_nodes_volume_connectors_get_member ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs_drac_wsman -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs_drac_wsman ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_435_lessee_reader_cannot_access_chassis ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_435_lessee_reader_cannot_access_chassis ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_nodes -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_nodes ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_204_nodes_volume_connectors_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_204_nodes_volume_connectors_get_observer ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_disabled_sessions_cache -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_disabled_sessions_cache ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_none_requested +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_none_requested ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_218_drivers_raid_logical_disk_properties_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_218_drivers_raid_logical_disk_properties_get_member ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_unsupported +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_unsupported ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_436_third_party_admin_cannot_access_chassis ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_436_third_party_admin_cannot_access_chassis ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_205_nodes_volume_targets_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_205_nodes_volume_targets_get_admin ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_basic_session_caching -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_basic_session_caching ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_address -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_address ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_219_drivers_raid_logical_disk_properties_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_219_drivers_raid_logical_disk_properties_get_observer ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_437_third_party_admin_cannot_create_chassis ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_437_third_party_admin_cannot_create_chassis ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_206_nodes_volume_targets_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_206_nodes_volume_targets_get_member ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_password -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_password ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_missing ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_username -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_username ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_220_drivers_vendor_passthru_methods_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_220_drivers_vendor_passthru_methods_get_admin ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_none_requested +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_none_requested ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_438_node_history_get_admin ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_438_node_history_get_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_207_nodes_volume_targets_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_207_nodes_volume_targets_get_observer ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_set ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_session_reuse -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_session_reuse ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_default ... ok +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_unsupported +ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_unsupported ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning +ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_439_node_history_get_member ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_439_node_history_get_member ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_non_default ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_expire_old_sessions -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_expire_old_sessions ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy ... ok -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-b2f7a18a-2f61-4f5e-a194-7d232f6cf02a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] -GOT:Response: 404 Not Found +ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying +ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_port_uuid +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_port_uuid ... ok +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-08ccc0a3-f3b9-48fc-b7bc-74fe2e3cef10 +Openstack-Request-Id: req-7a96deba-b6f4-476a-b468-e05ea3931d1a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers +GET: /v1/drivers {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-cbb5513d-8723-4d4d-b5c1-ce36688d4749 +Openstack-Request-Id: req-234afed5-912f-4487-906b-d2f153139549 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers +GET: /v1/drivers {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-afcdb80e-7378-4558-b765-b0690dee4965 +Openstack-Request-Id: req-451941d6-6266-4de9-9aef-07ca67a34bf2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz +GET: /v1/drivers/fake-driverz {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-1ae46c51-60ca-418f-bb45-168604e82cfc +Openstack-Request-Id: req-a0b4ed6a-107d-4b83-b799-489309cfb49d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz +GET: /v1/drivers/fake-driverz {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-37eb8abb-6c03-4974-bce0-22dd41095a3e +Openstack-Request-Id: req-712503a1-3fe2-4ed6-b66f-36c1ae7589fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz +GET: /v1/drivers/fake-driverz {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-fe1f8804-e380-4995-8881-24e8eefd9f35 +Openstack-Request-Id: req-78664ff5-b491-4696-9477-82f84fd5ec42 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/properties +GET: /v1/drivers/fake-driverz/properties {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-5e1d5b3d-139b-41fe-94ae-1ca4ed3b876b +Openstack-Request-Id: req-be31cdc9-8f05-4d8d-8850-a999ae2e3db1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/properties +GET: /v1/drivers/fake-driverz/properties {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-28662287-fb9a-4883-a66f-15a95b2f85dc +Openstack-Request-Id: req-34440c33-f7ef-478c-9baa-34c6df37eae2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/properties +GET: /v1/drivers/fake-driverz/properties {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-8b7172f3-4818-49eb-be80-2d90d82a52f9 +Openstack-Request-Id: req-6bdb1ffd-741b-4e68-b1dd-28bfb3ce038c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties +GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-af94e4aa-abbe-4caf-b0db-1faf35b50042 +Openstack-Request-Id: req-b78df402-6a00-4b82-bc6d-d52c66c1ee64 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties +GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-778b889c-cedc-47de-bd92-428b0f624cad +Openstack-Request-Id: req-2dff36e0-8faa-46b4-bbb5-f19eb6df59a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties +GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-57db3e76-5734-4895-abe3-c36b3f29d379 +Openstack-Request-Id: req-5040b68c-6ae1-40a1-a290-13f0c7ab3b1b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods +GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-b1db0e7d-22b4-45dc-83ad-3850e7e2bccb +Openstack-Request-Id: req-4e9a543a-f4fc-4502-8bfe-d842e3a25d75 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers -GET: /v1/drivers {} -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_208_drivers_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_208_drivers_get_admin ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_remove ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups_no_address -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups_no_address ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios -ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_get_node_network_data -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_get_node_network_data ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing ... ok +{"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}"} +API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods +GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_221_drivers_vendor_passthru_methods_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_221_drivers_vendor_passthru_methods_get_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all +ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_222_drivers_vendor_passthru_methods_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_222_drivers_vendor_passthru_methods_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_440_node_history_get_reader ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_440_node_history_get_reader ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi -ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_209_drivers_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_209_drivers_get_member ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay -ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one +ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_non_pregenerated_token +ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_non_pregenerated_token ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_223_drivers_vendor_passthru_get_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_223_drivers_vendor_passthru_get_admin ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all +ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid_attached_vifs +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid_attached_vifs ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_one +ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_one ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path ... ok GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-cb5b2365-8f40-4f53-9f37-aac1a430a2f2 +Openstack-Request-Id: req-710873a7-75f8-4d1f-88e5-1920b6393384 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-cb5b2365-8f40-4f53-9f37-aac1a430a2f2 +Openstack-Request-Id: req-710873a7-75f8-4d1f-88e5-1920b6393384 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -52390,14 +52701,14 @@ GET: /v1/chassis {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-a07b6146-b5d7-45b4-8467-7cdcc3fc7da4 +Openstack-Request-Id: req-37320d6c-0d91-4c4d-9f65-9a05c58cc4f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-a07b6146-b5d7-45b4-8467-7cdcc3fc7da4 +Openstack-Request-Id: req-37320d6c-0d91-4c4d-9f65-9a05c58cc4f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -52406,14 +52717,14 @@ GET: /v1/chassis {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-8ceba587-ae35-4238-bfda-f0ea90751895 +Openstack-Request-Id: req-ef61e00a-a92d-4673-a789-f66e2c5be1b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-8ceba587-ae35-4238-bfda-f0ea90751895 +Openstack-Request-Id: req-ef61e00a-a92d-4673-a789-f66e2c5be1b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -52422,14 +52733,14 @@ POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-5dc1971f-5e64-4180-80d9-d6e9bd589b08 +Openstack-Request-Id: req-df8340db-1ff3-46a5-ba33-827db8638afc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"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}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-5dc1971f-5e64-4180-80d9-d6e9bd589b08 +Openstack-Request-Id: req-df8340db-1ff3-46a5-ba33-827db8638afc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -52438,262 +52749,204 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f7de8e46-b706-4bee-a8b1-0e99fe3c4913 +Openstack-Request-Id: req-6bab27a8-c49e-4a5d-9a5c-faa2b8130131 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "53e66c5b-2e56-4364-a7b4-d4bd4e1d6cac", "created_at": "2025-02-07T21:37:32.363853+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/53e66c5b-2e56-4364-a7b4-d4bd4e1d6cac", "rel": "self"}]}]} +{"history": [{"uuid": "0e889a18-0776-40e9-8d25-d2ef8cf4beb7", "created_at": "2024-01-06T15:36:28.601887+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/0e889a18-0776-40e9-8d25-d2ef8cf4beb7", "rel": "self"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f7de8e46-b706-4bee-a8b1-0e99fe3c4913 +Openstack-Request-Id: req-6bab27a8-c49e-4a5d-9a5c-faa2b8130131 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "53e66c5b-2e56-4364-a7b4-d4bd4e1d6cac", "created_at": "2025-02-07T21:37:32.363853+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/53e66c5b-2e56-4364-a7b4-d4bd4e1d6cac", "rel": "self"}]}]} +{"history": [{"uuid": "0e889a18-0776-40e9-8d25-d2ef8cf4beb7", "created_at": "2024-01-06T15:36:28.601887+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/0e889a18-0776-40e9-8d25-d2ef8cf4beb7", "rel": "self"}]}]} API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-93ab4ac6-304c-47c5-a89a-09bad53a1c17 +Openstack-Request-Id: req-19329c2e-a2e5-47ef-af0c-3c23baf3f4b0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "fb1be8ab-d704-4fc0-a106-44e641982af0", "created_at": "2025-02-07T21:37:33.650456+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/fb1be8ab-d704-4fc0-a106-44e641982af0", "rel": "self"}]}]} +{"history": [{"uuid": "8f9d19b9-be10-4c5e-a64e-129d6d406bc8", "created_at": "2024-01-06T15:36:28.699639+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/8f9d19b9-be10-4c5e-a64e-129d6d406bc8", "rel": "self"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-93ab4ac6-304c-47c5-a89a-09bad53a1c17 +Openstack-Request-Id: req-19329c2e-a2e5-47ef-af0c-3c23baf3f4b0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "fb1be8ab-d704-4fc0-a106-44e641982af0", "created_at": "2025-02-07T21:37:33.650456+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/fb1be8ab-d704-4fc0-a106-44e641982af0", "rel": "self"}]}]} +{"history": [{"uuid": "8f9d19b9-be10-4c5e-a64e-129d6d406bc8", "created_at": "2024-01-06T15:36:28.699639+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/8f9d19b9-be10-4c5e-a64e-129d6d406bc8", "rel": "self"}]}]} API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-02ff83c3-fed5-4883-9330-c1c2bef7de9c +Openstack-Request-Id: req-991876d4-095b-4819-9386-da5535f8e9ba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "e9598838-2d61-4118-b414-c717e196b623", "created_at": "2025-02-07T21:37:34.664998+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/e9598838-2d61-4118-b414-c717e196b623", "rel": "self"}]}]} +{"history": [{"uuid": "a26e4bee-8860-495f-892d-0cf82df9bf4c", "created_at": "2024-01-06T15:36:28.796930+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/a26e4bee-8860-495f-892d-0cf82df9bf4c", "rel": "self"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-02ff83c3-fed5-4883-9330-c1c2bef7de9c +Openstack-Request-Id: req-991876d4-095b-4819-9386-da5535f8e9ba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "e9598838-2d61-4118-b414-c717e196b623", "created_at": "2025-02-07T21:37:34.664998+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/e9598838-2d61-4118-b414-c717e196b623", "rel": "self"}]}]} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/8f98c950-72f5-43d0-ae07-f5c95cd93f29 -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/8f98c950-72f5-43d0-ae07-f5c95cd93f29 {} -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default ... ok +{"history": [{"uuid": "a26e4bee-8860-495f-892d-0cf82df9bf4c", "created_at": "2024-01-06T15:36:28.796930+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/a26e4bee-8860-495f-892d-0cf82df9bf4c", "rel": "self"}]}]} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/6f109f71-c88e-420a-9086-9ae1ce04539e +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/6f109f71-c88e-420a-9086-9ae1ce04539e {} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_441_node_history_get_entry_admin ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_441_node_history_get_entry_admin ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception -ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_210_drivers_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_210_drivers_get_observer ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_442_node_history_get_entry_member ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_442_node_history_get_entry_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_211_drivers_driver_name_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_211_drivers_driver_name_get_admin ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_224_drivers_vendor_passthru_get_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_224_drivers_vendor_passthru_get_member ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_443_node_history_get_entry_reader ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_443_node_history_get_entry_reader ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_212_drivers_driver_name_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_212_drivers_driver_name_get_member ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_225_drivers_vendor_passthru_get_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_225_drivers_vendor_passthru_get_observer ... ok +ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods +ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets ... ok +ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device +ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device ... ok +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references ... ok +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_444_lessee_node_history_get_admin ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_444_lessee_node_history_get_admin ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_1 -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_1 ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_2 -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_2 ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_213_drivers_driver_name_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_213_drivers_driver_name_get_observer ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_226_drivers_vendor_passthru_post_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_226_drivers_vendor_passthru_post_admin ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free ... ok +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception ... ok +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first ... ok +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_445_lessee_node_history_get_member ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_445_lessee_node_history_get_member ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_missing ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_set ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_missing ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_227_drivers_vendor_passthru_post_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_227_drivers_vendor_passthru_post_member ... ok +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_446_lessee_node_history_get_reader ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_446_lessee_node_history_get_reader ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_214_drivers_properties_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_214_drivers_properties_get_admin ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_no_remove_non_default ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection_exc -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection_exc ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_remove ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port_auto_allocate -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port_auto_allocate ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_228_drivers_vendor_passthru_post_observer +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_228_drivers_vendor_passthru_post_observer ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_447_lessee_node_history_get_entry_admin ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_447_lessee_node_history_get_entry_admin ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_215_drivers_properties_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_215_drivers_properties_get_member ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_229_drivers_vendor_passthru_put_admin +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_229_drivers_vendor_passthru_put_admin ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local ... ok +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_230_drivers_vendor_passthru_put_member +ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_230_drivers_vendor_passthru_put_member ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8d4450dc-1e92-4aa3-863d-75b1fa71dddc +Openstack-Request-Id: req-493a4a60-d979-4cac-bad5-86a3bc990d10 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8d4450dc-1e92-4aa3-863d-75b1fa71dddc +Openstack-Request-Id: req-493a4a60-d979-4cac-bad5-86a3bc990d10 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/9c346db1-be29-42f1-8ff6-3abf3fba0bc0 -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/9c346db1-be29-42f1-8ff6-3abf3fba0bc0 {} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/b998c711-966d-476b-9d41-7bcc9412eca8 +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/b998c711-966d-476b-9d41-7bcc9412eca8 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-138316fc-d819-4f4c-802e-91f7fb73d0e5 +Openstack-Request-Id: req-d13e4d38-a054-4d65-8668-08a5f6105d23 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "9c346db1-be29-42f1-8ff6-3abf3fba0bc0", "created_at": "2025-02-07T21:37:36.618857+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/9c346db1-be29-42f1-8ff6-3abf3fba0bc0", "rel": "self"}]} +{"uuid": "b998c711-966d-476b-9d41-7bcc9412eca8", "created_at": "2024-01-06T15:36:29.005001+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/b998c711-966d-476b-9d41-7bcc9412eca8", "rel": "self"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-138316fc-d819-4f4c-802e-91f7fb73d0e5 +Openstack-Request-Id: req-d13e4d38-a054-4d65-8668-08a5f6105d23 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "9c346db1-be29-42f1-8ff6-3abf3fba0bc0", "created_at": "2025-02-07T21:37:36.618857+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/9c346db1-be29-42f1-8ff6-3abf3fba0bc0", "rel": "self"}]} -API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/b8bcf70c-8da8-4c6b-8104-414ae55f90a6 -GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/b8bcf70c-8da8-4c6b-8104-414ae55f90a6 {} +{"uuid": "b998c711-966d-476b-9d41-7bcc9412eca8", "created_at": "2024-01-06T15:36:29.005001+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/b998c711-966d-476b-9d41-7bcc9412eca8", "rel": "self"}]} +API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/14131de6-f693-49f2-959b-6e7768192fd7 +GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/14131de6-f693-49f2-959b-6e7768192fd7 {} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-446478e4-89d5-4d5a-8976-a10ad90df03a +Openstack-Request-Id: req-3d0c2ead-45c8-4f4e-ac15-a4428207502f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b8bcf70c-8da8-4c6b-8104-414ae55f90a6", "created_at": "2025-02-07T21:37:37.458183+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/b8bcf70c-8da8-4c6b-8104-414ae55f90a6", "rel": "self"}]} +{"uuid": "14131de6-f693-49f2-959b-6e7768192fd7", "created_at": "2024-01-06T15:36:29.101019+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/14131de6-f693-49f2-959b-6e7768192fd7", "rel": "self"}]} ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-446478e4-89d5-4d5a-8976-a10ad90df03a +Openstack-Request-Id: req-3d0c2ead-45c8-4f4e-ac15-a4428207502f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "b8bcf70c-8da8-4c6b-8104-414ae55f90a6", "created_at": "2025-02-07T21:37:37.458183+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/b8bcf70c-8da8-4c6b-8104-414ae55f90a6", "rel": "self"}]} +{"uuid": "14131de6-f693-49f2-959b-6e7768192fd7", "created_at": "2024-01-06T15:36:29.101019+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/14131de6-f693-49f2-959b-6e7768192fd7", "rel": "self"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8d485a21-5ba5-49f8-b83a-72047e41cac4 +Openstack-Request-Id: req-e089cbc7-8c71-4579-83e2-05fbe7eba7f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8d485a21-5ba5-49f8-b83a-72047e41cac4 +Openstack-Request-Id: req-e089cbc7-8c71-4579-83e2-05fbe7eba7f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -52702,14 +52955,14 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fd083a9a-c162-4c6a-8690-9049546c28d5 +Openstack-Request-Id: req-92e6c4af-fb2b-4a3a-8342-d0fb2932742a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fd083a9a-c162-4c6a-8690-9049546c28d5 +Openstack-Request-Id: req-92e6c4af-fb2b-4a3a-8342-d0fb2932742a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -52718,586 +52971,190 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-850268a4-cccd-4e46-82ef-08924a1756ad +Openstack-Request-Id: req-d7e1af6f-f37c-48ea-bd84-55a2b688bd53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-850268a4-cccd-4e46-82ef-08924a1756ad +Openstack-Request-Id: req-d7e1af6f-f37c-48ea-bd84-55a2b688bd53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d97ae6af-5c66-44c9-a9c1-a18607a053ca -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d97ae6af-5c66-44c9-a9c1-a18607a053ca {} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/538e6f5e-b162-40fd-a222-66ad77c997a7 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/538e6f5e-b162-40fd-a222-66ad77c997a7 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c581b41c-f548-4122-b7bd-0a5e1336e1ec +Openstack-Request-Id: req-364fd11b-700e-40ac-85a6-8f3c3300e154 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c581b41c-f548-4122-b7bd-0a5e1336e1ec +Openstack-Request-Id: req-364fd11b-700e-40ac-85a6-8f3c3300e154 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/92c492aa-54e5-4c89-808c-7d72f538c161 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/92c492aa-54e5-4c89-808c-7d72f538c161 {} -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach ... ok +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/0ff512b3-0ccc-4817-bd7d-ec78cd362d02 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/0ff512b3-0ccc-4817-bd7d-ec78cd362d02 {} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_448_lessee_history_get_entry_member ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_448_lessee_history_get_entry_member ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_216_drivers_properties_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_216_drivers_properties_get_observer ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_449_lessee_node_history_get_entry_reader ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_449_lessee_node_history_get_entry_reader ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_alloc_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_alloc_port ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_217_drivers_raid_logical_disk_properties_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_217_drivers_raid_logical_disk_properties_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue -ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_with_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_with_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter ... ok -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_450_third_party_admin_cannot_get_node_history -ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_450_third_party_admin_cannot_get_node_history ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_bad_command_result -ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_bad_command_result ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter ... ok -ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated -ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_218_drivers_raid_logical_disk_properties_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_218_drivers_raid_logical_disk_properties_get_member ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_exc -ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_exc ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_no_secrets -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_no_secrets ... ok -ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_not_authenticated -ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_not_authenticated ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_missing_command_result -ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_missing_command_result ... ok -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_not_affected -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_not_affected ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error ... ok -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console ... ok -ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_public_unauthenticated -ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_public_unauthenticated ... ok -ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_with_smartnic_port -ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_with_smartnic_port ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_219_drivers_raid_logical_disk_properties_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_219_drivers_raid_logical_disk_properties_get_observer ... ok -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect ... ok -ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults -ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled ... ok -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps ... ok -ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning -ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated ... ok -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps_deploy -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps_deploy ... ok -ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros -ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate ... ok -WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema ... ok -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name ... ok -ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros -ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field ... ok -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue ... ok -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_cleaning ... ok -ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid -ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_220_drivers_vendor_passthru_methods_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_220_drivers_vendor_passthru_methods_get_admin ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field ... ok -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor ... ok -ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid_colon_key_name -ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid_colon_key_name ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_deploying ... ok -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_running -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_running ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue -ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue ... ok -ironic.tests.unit.objects.test_objects.TestMisc.test_max_version -ironic.tests.unit.objects.test_objects.TestMisc.test_max_version ... ok -ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task -ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task ... ok -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-28a8f512-a200-4c68-ab70-e635265c3573 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers -GET: /v1/drivers {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-e135430a-ad59-4e57-acb0-020f650e089a -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers -GET: /v1/drivers {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-3d0cf538-bbcf-4582-9236-b8abadcea8e4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz -GET: /v1/drivers/fake-driverz {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-7cbcf272-c029-442d-961f-9396fce20d0f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz -GET: /v1/drivers/fake-driverz {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-beb962ea-b830-4995-a11f-93c2ca22a43c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz -GET: /v1/drivers/fake-driverz {} -GOT:Response: 500 Internal Server Error +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-482d4073-ff0b-4a44-824d-87e1c662fd7b +Openstack-Request-Id: req-50e42269-ba6d-4919-9133-e40acbe2db81 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/properties -GET: /v1/drivers/fake-driverz/properties {} -GOT:Response: 500 Internal Server Error +{"history": [{"uuid": "bc899a6d-9e1f-4b20-a080-99bda675a236", "created_at": "2024-01-06T15:36:00.953643+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/bc899a6d-9e1f-4b20-a080-99bda675a236", "rel": "self"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-405df1ad-d274-4f6b-86b2-09c8aaf0fce3 +Openstack-Request-Id: req-50e42269-ba6d-4919-9133-e40acbe2db81 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/properties -GET: /v1/drivers/fake-driverz/properties {} -GOT:Response: 500 Internal Server Error +{"history": [{"uuid": "bc899a6d-9e1f-4b20-a080-99bda675a236", "created_at": "2024-01-06T15:36:00.953643+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/bc899a6d-9e1f-4b20-a080-99bda675a236", "rel": "self"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f87ecd28-7a45-4ca4-a3c1-f733094531b6 +Openstack-Request-Id: req-01f03639-c115-4d75-99c4-879a485bd457 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/properties -GET: /v1/drivers/fake-driverz/properties {} -GOT:Response: 500 Internal Server Error +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-45d1bb75-1695-42b3-b158-80ff11d01cc5 +Openstack-Request-Id: req-01f03639-c115-4d75-99c4-879a485bd457 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties -GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} -GOT:Response: 500 Internal Server Error +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-129c291d-0424-46ea-98b4-b393ed48a827 +Openstack-Request-Id: req-04262d18-a85b-4e68-a884-b6206965dc34 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties -GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} -GOT:Response: 500 Internal Server Error +{"history": [{"uuid": "effc8652-6939-468b-8c60-0d0a76269c10", "created_at": "2024-01-06T15:36:02.114375+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/effc8652-6939-468b-8c60-0d0a76269c10", "rel": "self"}]}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ae98f279-c0f4-44ed-be82-def314d67898 +Openstack-Request-Id: req-04262d18-a85b-4e68-a884-b6206965dc34 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties -GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} -GOT:Response: 500 Internal Server Error +{"history": [{"uuid": "effc8652-6939-468b-8c60-0d0a76269c10", "created_at": "2024-01-06T15:36:02.114375+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/effc8652-6939-468b-8c60-0d0a76269c10", "rel": "self"}]}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/180e3632-b7aa-4c38-9581-fd43d385f98b +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/180e3632-b7aa-4c38-9581-fd43d385f98b {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-27518ffd-1d04-4a0d-8e45-93e60a9479c2 +Openstack-Request-Id: req-c22cd08e-a094-44a4-b5c0-a7f093283b11 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods -GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} -GOT:Response: 500 Internal Server Error +{"uuid": "180e3632-b7aa-4c38-9581-fd43d385f98b", "created_at": "2024-01-06T15:36:02.692619+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/180e3632-b7aa-4c38-9581-fd43d385f98b", "rel": "self"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-64a8ef5c-24b4-4d25-b04b-ed7d575c561a +Openstack-Request-Id: req-c22cd08e-a094-44a4-b5c0-a7f093283b11 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"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}"} -API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods -GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} -ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel -ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel ... ok -ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one -ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_221_drivers_vendor_passthru_methods_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_221_drivers_vendor_passthru_methods_get_member ... ok -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_version_mismatch -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_version_mismatch ... ok -ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat -ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat ... ok -ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two -ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two ... ok -GOT:{'node': {'uuid': '4d8a9d7f-d43d-45e3-b7c6-e88521771ee6', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/4d8a9d7f-d43d-45e3-b7c6-e88521771ee6', 'rel': 'self'}, {'href': 'http://localhost/nodes/4d8a9d7f-d43d-45e3-b7c6-e88521771ee6', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': 'this_thing_on?', 'agent_token_required': True}} -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 {} -GOT:{'node': {'uuid': '0734cad4-64ff-43cb-bc7e-4673796f82ce', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/0734cad4-64ff-43cb-bc7e-4673796f82ce', 'rel': 'self'}, {'href': 'http://localhost/nodes/0734cad4-64ff-43cb-bc7e-4673796f82ce', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': '123456', 'agent_token_required': True}} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=c7409209-f9b0-47e3-9a18-3ebf3b6e7bd3 {} -GOT:{'node': {'uuid': 'c7409209-f9b0-47e3-9a18-3ebf3b6e7bd3', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', '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/c7409209-f9b0-47e3-9a18-3ebf3b6e7bd3', 'rel': 'self'}, {'href': 'http://localhost/nodes/c7409209-f9b0-47e3-9a18-3ebf3b6e7bd3', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300, 'agent_token': '234567890', 'agent_token_required': True}} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} +{"uuid": "180e3632-b7aa-4c38-9581-fd43d385f98b", "created_at": "2024-01-06T15:36:02.692619+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/180e3632-b7aa-4c38-9581-fd43d385f98b", "rel": "self"}]} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/90d0f0df-52ec-42b0-9f8a-c2b99ae3ded6 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/90d0f0df-52ec-42b0-9f8a-c2b99ae3ded6 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-44a5cbf0-b7b9-44b7-a593-e3837adccc2d +Openstack-Request-Id: req-f56e5c4e-d68e-40d5-aa36-7e897ae05c4d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} -GET: /v1/lookup {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-73cfe618-8111-427b-96ca-c0fc40889f64 +Openstack-Request-Id: req-f56e5c4e-d68e-40d5-aa36-7e897ae05c4d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d99bc30b-e1df-439d-8211-71c5e5a936f3 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d99bc30b-e1df-439d-8211-71c5e5a936f3 {} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-56750ab4-7891-43fe-bf1e-6a6457f62a36 +Openstack-Request-Id: req-908f0507-d8e8-4a5e-bb08-a0bc0f6b68fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 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}"} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=45209e0b-29e7-40af-aa06-fa6d7b5f6d01 {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.80 +{"uuid": "d99bc30b-e1df-439d-8211-71c5e5a936f3", "created_at": "2024-01-06T15:36:03.540341+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/d99bc30b-e1df-439d-8211-71c5e5a936f3", "rel": "self"}]} +ACL Test GOT Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-77f00caa-59c0-43cb-a944-c3c7b696bfe1 +Openstack-Request-Id: req-908f0507-d8e8-4a5e-bb08-a0bc0f6b68fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} -ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk -ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_cleaning ... ok -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_deploy_step -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_deploy_step ... ok -ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface -ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_222_drivers_vendor_passthru_methods_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_222_drivers_vendor_passthru_methods_get_observer ... ok -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_deploying ... ok -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port ... ok -ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_maintenance -ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_maintenance ... ok -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step_not_found -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step_not_found ... ok -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_no_vif -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_no_vif ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_cleaning ... ok -ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_not_retry_with_token -ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_not_retry_with_token ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_223_drivers_vendor_passthru_get_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_223_drivers_vendor_passthru_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps ... ok -ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change -ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change ... ok -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_vif_present -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_vif_present ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_deploying ... ok -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps_only_oob -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps_only_oob ... ok -ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry -ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_cleaning ... ok -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_port_unbound -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_port_unbound ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_224_drivers_vendor_passthru_get_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_224_drivers_vendor_passthru_get_member ... ok -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_custom_interface -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_custom_interface ... ok -ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_wrong_state -ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_wrong_state ... ok -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_deploying ... ok -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_missing_steps -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_missing_steps ... ok -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked ... ok -ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts -ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning ... ok -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_225_drivers_vendor_passthru_get_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_225_drivers_vendor_passthru_get_observer ... ok -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning_deploying ... ok -WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities_none -ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities_none ... ok -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_unbound -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_unbound ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_cleaning ... ok -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_226_drivers_vendor_passthru_post_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_226_drivers_vendor_passthru_post_admin ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state ... ok -WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying ... ok -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor ... ok -WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_idrac -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_idrac ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_227_drivers_vendor_passthru_post_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_227_drivers_vendor_passthru_post_member ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_cleaning ... ok -WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_deploying ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok ... ok -WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_cleaning ... ok -ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client -ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client ... ok -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_deploying ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail ... ok -WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_228_drivers_vendor_passthru_post_observer -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_228_drivers_vendor_passthru_post_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning ... ok -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_bios -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_bios ... ok -WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_deploying ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_229_drivers_vendor_passthru_put_admin -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_229_drivers_vendor_passthru_put_admin ... ok -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_inspect -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_inspect ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning ... ok -WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_management_and_power -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_management_and_power ... ok -ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_connection_problem -ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_connection_problem ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying ... ok -WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error ... ok -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_230_drivers_vendor_passthru_put_member -ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_230_drivers_vendor_passthru_put_member ... ok -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_raid -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_raid ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_cleaning ... ok -WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying ... ok +{"uuid": "d99bc30b-e1df-439d-8211-71c5e5a936f3", "created_at": "2024-01-06T15:36:03.540341+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/d99bc30b-e1df-439d-8211-71c5e5a936f3", "rel": "self"}]} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_231_drivers_vendor_passthru_put_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_231_drivers_vendor_passthru_put_observer ... ok -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_virtual_media_boot -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_virtual_media_boot ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning ... ok -ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_450_third_party_admin_cannot_get_node_history +ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_450_third_party_admin_cannot_get_node_history ... ok +ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable +ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_232_drivers_vendor_passthru_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_232_drivers_vendor_passthru_delete_admin ... skipped 'not updated for scope testing' -ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management -ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying ... ok -ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_missing -ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_missing ... ok -ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_set -ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_set ... ok +ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable +ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable ... ok +ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check +ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check ... ok +ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url +ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_233_drivers_vendor_passthru_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_233_drivers_vendor_passthru_delete_observer ... skipped 'not updated for scope testing' -ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_missing -ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_missing ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning ... ok -ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone -ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone ... ok -ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_default ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying ... ok -ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid ... ok +ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint +ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_234_nodes_bios_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_234_nodes_bios_get_admin ... ok -ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_remove -ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_remove ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_235_nodes_bios_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_235_nodes_bios_get_member ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_cleaning -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_cleaning ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_check_exception_IncompatibleInterface +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_check_exception_IncompatibleInterface ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state ... ok GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-9a27fadf-492d-4a6f-983a-207aadbb9849 +Openstack-Request-Id: req-87ee5658-6032-4835-8ed9-96c4cf68519a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53306,7 +53163,7 @@ GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-2a4cc96d-4946-449f-ba21-3ef2e830ddf4 +Openstack-Request-Id: req-ad6e3515-d1b1-4bb5-94da-7731c9cab3ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53315,7 +53172,7 @@ GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-36b4c239-50ff-4844-9d63-beec9d052cdd +Openstack-Request-Id: req-dc515d13-2be5-40e6-968b-e0a6d2fd4b3f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53324,7 +53181,7 @@ GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-427f69d4-298e-4ca4-825a-d39fecc7b346 +Openstack-Request-Id: req-145dab9c-8752-4041-9b4f-d9eae868bd30 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53333,7 +53190,7 @@ GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-dd5c51f9-2378-433f-8585-b455ce842ae5 +Openstack-Request-Id: req-71d6c590-58d1-472e-a2cf-47353cdcef8c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53342,7 +53199,7 @@ POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-810e7725-c3d9-41a7-b822-35ae71ca2bbf +Openstack-Request-Id: req-6438c9f6-0018-43f2-b862-432392ce9f1b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53351,7 +53208,7 @@ POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-2b853df0-ddd1-4b3c-993f-06d7d7e7cdb8 +Openstack-Request-Id: req-5917f514-83ea-4444-9aa8-d47e379f16f2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53360,7 +53217,7 @@ POST: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-b2f3cccc-589a-4e09-84f4-13f6ab124870 +Openstack-Request-Id: req-b15acc7f-dd5f-4c7c-9f03-8b216e0d2ff3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53369,7 +53226,7 @@ PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-e7d14791-09ba-4567-9dc0-5546a8203b00 +Openstack-Request-Id: req-2c923402-976f-4651-aa83-bdbc99bded75 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53378,7 +53235,7 @@ PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-698f93bc-0597-4a93-a6ae-ead40fa59d1f +Openstack-Request-Id: req-494dd536-3bf8-4224-94d4-4eaba4a86e47 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53387,7 +53244,7 @@ PUT: /v1/drivers/fake-driverz/vendor_passthru?method=test None GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-48547f53-3908-4ac5-82dc-ef06d3da1aad +Openstack-Request-Id: req-dc5f4980-30ed-45f4-9908-6cbc151a583b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53396,7 +53253,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-80d63605-6435-4036-8d0f-87d2d5cb4a33 +Openstack-Request-Id: req-38d3c2f1-90b9-4bfc-abab-029da8167775 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53405,238 +53262,156 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0896fe19-8ced-4000-ac78-59fe6de9d707 +Openstack-Request-Id: req-88f1fbb5-8c8b-4f9e-9e53-960f79374084 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_236_nodes_bios_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_236_nodes_bios_get_observer ... ok -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_deploying -ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_deploying ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save ... ok -ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check -ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_avoid_repeatedly_resume_cleaning -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_avoid_repeatedly_resume_cleaning ... ok +ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task +ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_237_nodes_bios_bios_setting_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_237_nodes_bios_bios_setting_get_admin ... ok -GOT:{'targets': [{'uuid': '8fba1709-14ba-46d7-aaf9-1aca2eb5855f', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/8fba1709-14ba-46d7-aaf9-1aca2eb5855f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/8fba1709-14ba-46d7-aaf9-1aca2eb5855f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '5319f5ee-cf00-41ba-ac73-a4e45ca71d3f', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/5319f5ee-cf00-41ba-ac73-a4e45ca71d3f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5319f5ee-cf00-41ba-ac73-a4e45ca71d3f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '4fb52e1c-6f54-4bd4-bb70-b5be8d97e5c5', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/4fb52e1c-6f54-4bd4-bb70-b5be8d97e5c5', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/4fb52e1c-6f54-4bd4-bb70-b5be8d97e5c5', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'c23f5120-75e2-42a4-bd5f-b3057040a43c', 'boot_index': 3, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/c23f5120-75e2-42a4-bd5f-b3057040a43c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c23f5120-75e2-42a4-bd5f-b3057040a43c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'a3c43984-d6cc-4344-ad90-2937e74dedd2', 'boot_index': 4, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/a3c43984-d6cc-4344-ad90-2937e74dedd2', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a3c43984-d6cc-4344-ad90-2937e74dedd2', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/volume/targets {} -GOT:{'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'}]} -GET: /v1/volume/targets {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -GET: /v1/volume/targets?sort_key=uuid {} -GOT:{'targets': [{'uuid': '81caf892-9f2f-466c-9865-248946983fab', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/81caf892-9f2f-466c-9865-248946983fab', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/81caf892-9f2f-466c-9865-248946983fab', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '91e72135-6ecc-4b5b-8248-44044b68aab1', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/91e72135-6ecc-4b5b-8248-44044b68aab1', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/91e72135-6ecc-4b5b-8248-44044b68aab1', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'f4acc361-6c44-442b-bdeb-80c35d795bfb', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/f4acc361-6c44-442b-bdeb-80c35d795bfb', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f4acc361-6c44-442b-bdeb-80c35d795bfb', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} -GET: /v1/volume/targets?sort_key=foo {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-8141cb3e-49fe-437b-8063-5376d9f67ca5 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-a05d57dc-b071-44e1-972c-1192c5a0baad -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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 {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-d42b43ed-b3d6-4e4d-aa4d-685257b37d9c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state ... ok -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-652e969f-f5f9-41cc-881b-58b02c50fb71 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "67d690ff-f09d-41e9-928b-c0ff7ad00ba8", "created_at": "2025-02-07T21:29:08.114781+00:00", "updated_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", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_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/67d690ff-f09d-41e9-928b-c0ff7ad00ba8", "rel": "self"}, {"href": "http://localhost/nodes/67d690ff-f09d-41e9-928b-c0ff7ad00ba8", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/67d690ff-f09d-41e9-928b-c0ff7ad00ba8/ports", "rel": "self"}, {"href": "http://localhost/nodes/67d690ff-f09d-41e9-928b-c0ff7ad00ba8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/67d690ff-f09d-41e9-928b-c0ff7ad00ba8/states", "rel": "self"}, {"href": "http://localhost/nodes/67d690ff-f09d-41e9-928b-c0ff7ad00ba8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/67d690ff-f09d-41e9-928b-c0ff7ad00ba8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/67d690ff-f09d-41e9-928b-c0ff7ad00ba8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/67d690ff-f09d-41e9-928b-c0ff7ad00ba8/volume", "rel": "self"}, {"href": "http://localhost/nodes/67d690ff-f09d-41e9-928b-c0ff7ad00ba8/volume", "rel": "bookmark"}]} -PATCH: /v1/nodes/d8efec1b-1b04-418a-af6a-edc16ea7a975 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-7e70675b-7293-44d2-96ea-57f67f3a0b41 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -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}"} -PATCH: /v1/nodes/dd03aeca-253e-4bc3-b710-70430a039e5c [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-230a5046-0202-4990-8033-70eec23b6fa4 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"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, storage_interface, vendor_interface\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-fb6e8d57-f320-438b-a71f-6fbdc6fa9f4f -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.45 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-02-07T21:29:09.549094+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", "cpus": "8", "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"}]} +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states ... ok +ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat +ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error ... ok +ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface +ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_238_nodes_bios_bios_setting_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_238_nodes_bios_bios_setting_get_member ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail ... ok +ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task +ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail ... ok +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth ... ok +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_239_nodes_bios_bios_setting_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_239_nodes_bios_bios_setting_get_observer ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none ... ok +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail_on_power_on +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail_on_power_on ... ok +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_240_conductors_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_240_conductors_get_admin ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_on +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_on ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_241_conductors_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_241_conductors_get_member ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment_no_physnet +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment_no_physnet ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_242_conductors_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_242_conductors_get_observer ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach ... ok -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_243_conductors_hostname_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_243_conductors_hostname_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked ... ok -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_fast_track -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_fast_track ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_244_conductors_hostname_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_244_conductors_hostname_get_member ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error ... ok -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_storage_should_write_image_false -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_storage_should_write_image_false ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error ... ok -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_with_deployment_reboot -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_with_deployment_reboot ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_auto +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_auto ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_245_conductors_hostname_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_245_conductors_hostname_get_observer ... ok -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_get_properties -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_get_properties ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps ... ok -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare ... ok +ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions +ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions ... ok +ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects +ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects ... ok +ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases +ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_basic +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_basic ... ok +ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects +ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_246_allocations_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_246_allocations_post_admin ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled ... ok -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_fast_track -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_fast_track ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_no_override -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_no_override ... ok +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context ... ok +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session ... ok +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_247_allocations_post_member 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." -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_disable -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_disable ... ok -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_validate -ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_validate ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_fail -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_fail ... ok +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context ... ok +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_disabled_sessions_cache +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_disabled_sessions_cache ... ok +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_248_allocations_post_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_248_allocations_post_observer ... ok -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_ok ... ok -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_after_reboot -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_after_reboot ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_basic_session_caching +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_basic_session_caching ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_249_allocations_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_249_allocations_get_admin ... ok -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_automated_clean_version_mismatch -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_automated_clean_version_mismatch ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps ... ok -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_clean_version_mismatch_fail -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_clean_version_mismatch_fail ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_address +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_address ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_250_allocations_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_250_allocations_get_member ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_disable_ramdisk -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_disable_ramdisk ... ok -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_fail -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_fail ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception ... ok -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_manual_clean_version_mismatch -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_manual_clean_version_mismatch ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_password +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_password ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_251_allocations_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_251_allocations_get_observer ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg ... ok -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_no_step_running -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_no_step_running ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg ... ok -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_old_command -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_old_command ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_username +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_username ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f4acdf9c-fef3-47ba-995b-569abbedfd57 +Openstack-Request-Id: req-fe79da69-4fc3-4bae-bd0e-feb5f5deaaa4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53645,7 +53420,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6eed0792-6098-48ab-bc2b-0b2b85ba293a +Openstack-Request-Id: req-9e8c875f-1a12-4e31-88cb-d29415920154 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53654,7 +53429,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5596376f-1a5e-4d8d-8ee8-711a2530896b +Openstack-Request-Id: req-6b6d3cc9-69b8-4a68-80ad-e07995e3ff7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53663,7 +53438,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ad2014e1-b284-492f-8516-ca2fb26a69e8 +Openstack-Request-Id: req-6ae16e7d-8467-4468-a526-b2f25836fed1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53672,7 +53447,7 @@ GET: /v1/conductors {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-72fc3d1d-128e-479c-971e-be1635ace565 +Openstack-Request-Id: req-4c0800c0-cfe3-4053-8296-b5549615e5cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53681,7 +53456,7 @@ GET: /v1/conductors {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-bbf2925e-db29-419b-98b2-ec0aa42a9d13 +Openstack-Request-Id: req-8460c4f8-ab31-49e6-922b-f6a699381a97 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53690,7 +53465,7 @@ GET: /v1/conductors {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-494f6fe1-2f1a-4ad1-a9b4-92fa519dbb5d +Openstack-Request-Id: req-9e253d74-dd27-409d-80c4-09bd72a17698 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53699,7 +53474,7 @@ GET: /v1/conductors/test-conductor-node {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-6ffd513e-feff-4fd3-aaca-53d701aa1c0a +Openstack-Request-Id: req-99cf0a8e-801b-4d5a-897b-f8ffe179e6d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53708,7 +53483,7 @@ GET: /v1/conductors/test-conductor-node {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-9837c8a8-a452-4a52-a07b-a17896d5cf73 +Openstack-Request-Id: req-559773f0-fe92-4c2a-9e99-d686cc09008c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53717,7 +53492,7 @@ GET: /v1/conductors/test-conductor-node {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-d23dcc0f-6db4-44d3-b5b9-7bdeccb70eaa +Openstack-Request-Id: req-825c5772-23ba-4920-9dfa-cac5e6120de4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53726,7 +53501,7 @@ POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-28d67795-f443-436d-9288-e65f4cff582d +Openstack-Request-Id: req-d72beec6-387f-41ed-82e6-64b7760d925a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53735,7 +53510,7 @@ POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-a9174139-74bb-41db-bb12-78d109847219 +Openstack-Request-Id: req-e3da9154-ab28-40f7-a875-bdf8de1c6e75 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53744,7 +53519,7 @@ GET: /v1/allocations {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-35de1423-5b4e-44ac-abb5-91d6038b5b1c +Openstack-Request-Id: req-a31befdd-41b7-4978-b237-3923c0ee565f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53753,7 +53528,7 @@ GET: /v1/allocations {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-28d03130-cf05-4e2b-bfb4-fbd34a8d6e33 +Openstack-Request-Id: req-dc80d614-c393-4bc0-b37d-a70ed2c7b45b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -53762,243 +53537,197 @@ GET: /v1/allocations {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-380ad5a1-3dcc-4d00-a903-d2516810c4d6 +Openstack-Request-Id: req-4132f4b2-7ea5-48b6-960a-f60dbc4ffa1d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations/326d5bde-f75a-4280-be4f-6be65320e723 -GET: /v1/allocations/326d5bde-f75a-4280-be4f-6be65320e723 {} +API ACL Testing Path get /v1/allocations/97b7a966-1733-4010-878f-0e658e65c063 +GET: /v1/allocations/97b7a966-1733-4010-878f-0e658e65c063 {} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_252_allocations_allocation_id_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_252_allocations_allocation_id_get_admin ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps ... ok -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_reboot -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_reboot ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_session_reuse +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_session_reuse ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_253_allocations_allocation_id_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_253_allocations_allocation_id_get_member ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_requires_ramdisk -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_requires_ramdisk ... ok -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_running -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_running ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_expire_old_sessions +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_expire_old_sessions ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_254_allocations_allocation_id_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_254_allocations_allocation_id_get_observer ... ok -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_unknown -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_unknown ... ok -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook ... ok -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual -ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual ... ok -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook_fails -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook_fails ... ok -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list ... ok +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_empty +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_empty ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_255_allocations_allocation_id_patch_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_255_allocations_allocation_id_patch_admin ... ok -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_manual_cleaning -ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_manual_cleaning ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path ... ok -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock ... ok +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling ... ok +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_dict +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_dict ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_256_allocations_allocation_id_patch_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_256_allocations_allocation_id_patch_member ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch -ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch ... ok -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw -ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_estimate_fallback -ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_estimate_fallback ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date ... ok +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_string +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_string ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_first_run +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_first_run ... ok +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_second_run +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_second_run ... ok +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string +ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_257_allocations_allocation_id_patch_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_257_allocations_allocation_id_patch_observer ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date ... ok -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date ... ok -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event ... ok +ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios +ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_258_allocations_allocation_id_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_258_allocations_allocation_id_delete_admin ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir ... ok -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_memory_low -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_memory_low ... ok -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_fails +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_fails ... ok +ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_exception +ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_exception ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_259_allocations_allocation_id_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_259_allocations_allocation_id_delete_member ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid ... ok -ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting -ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw ... ok -ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode -ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode ... ok +ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_unsupported +ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_unsupported ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_260_allocations_allocation_id_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_260_allocations_allocation_id_delete_observer ... ok -ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid -ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid ... ok -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor ... ok -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_261_nodes_allocation_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_261_nodes_allocation_get_admin ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state ... ok -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht ... ok -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt ... ok +ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify +ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_262_nodes_allocation_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_262_nodes_allocation_get_member ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht ... ok -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht ... ok +ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails +ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_263_nodes_allocation_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_263_nodes_allocation_get_observer ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups ... ok -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_polling +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_polling ... ok +ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_validation_fails +ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_validation_fails ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_cleaning_deploying +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_cleaning_deploying ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_264_nodes_allocation_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_264_nodes_allocation_delete_admin ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor ... ok -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online ... ok -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config_fail +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config_fail ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_265_nodes_allocation_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_265_nodes_allocation_delete_member ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors ... ok -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track_via_driver_info +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track_via_driver_info ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c9115f96-f665-434f-9b34-b62ca8cd0e43 +Openstack-Request-Id: req-15175227-3847-4fc1-beca-dfa28474b31d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 326d5bde-f75a-4280-be4f-6be65320e723 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations/3c7af45b-6f81-4521-85e7-c3da554e7d7c -GET: /v1/allocations/3c7af45b-6f81-4521-85e7-c3da554e7d7c {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 97b7a966-1733-4010-878f-0e658e65c063 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/allocations/b3b65ad0-aa6a-4bf7-ad2b-c3c64446d2c0 +GET: /v1/allocations/b3b65ad0-aa6a-4bf7-ad2b-c3c64446d2c0 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a273f1d0-f21a-4879-b82d-918afb815585 +Openstack-Request-Id: req-b2249701-0ab1-4eee-8032-c7b65b43fa3f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 3c7af45b-6f81-4521-85e7-c3da554e7d7c could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/allocations/ea36bfe4-622b-4f42-bf13-5585d31110c6 -GET: /v1/allocations/ea36bfe4-622b-4f42-bf13-5585d31110c6 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation b3b65ad0-aa6a-4bf7-ad2b-c3c64446d2c0 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path get /v1/allocations/f4e1e259-006b-4471-b4e8-adfdfe589b22 +GET: /v1/allocations/f4e1e259-006b-4471-b4e8-adfdfe589b22 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6b11241c-6860-4683-a479-7042e81cc294 +Openstack-Request-Id: req-2fe47aed-b911-4b6b-bbe1-bc67bdf4c5c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation ea36bfe4-622b-4f42-bf13-5585d31110c6 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/e0cb28ac-02ef-4f5b-ae5a-8d20c074e507 -PATCH: /v1/allocations/e0cb28ac-02ef-4f5b-ae5a-8d20c074e507 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation f4e1e259-006b-4471-b4e8-adfdfe589b22 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/allocations/3af468b3-c281-4546-ae4a-87420cb7fd06 +PATCH: /v1/allocations/3af468b3-c281-4546-ae4a-87420cb7fd06 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ff0aae44-83eb-47eb-84e5-f90f6d4dc8c2 +Openstack-Request-Id: req-fb4e48b9-3924-4b2a-92ea-484aeb140767 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation e0cb28ac-02ef-4f5b-ae5a-8d20c074e507 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/8d261885-440b-4e9b-a1b1-9f7ce39fdb87 -PATCH: /v1/allocations/8d261885-440b-4e9b-a1b1-9f7ce39fdb87 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 3af468b3-c281-4546-ae4a-87420cb7fd06 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/allocations/6fcaeded-88c1-4bee-b5c5-0ac61354abb9 +PATCH: /v1/allocations/6fcaeded-88c1-4bee-b5c5-0ac61354abb9 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-af301630-8420-4c5b-8cb4-94f936a23881 +Openstack-Request-Id: req-98522921-1560-4859-926b-8b82846a622f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 8d261885-440b-4e9b-a1b1-9f7ce39fdb87 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/allocations/20763844-b9e6-4bfc-86cb-170d2e942db8 -PATCH: /v1/allocations/20763844-b9e6-4bfc-86cb-170d2e942db8 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 6fcaeded-88c1-4bee-b5c5-0ac61354abb9 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path patch /v1/allocations/26299631-55a7-4624-b466-8ae39856bf6a +PATCH: /v1/allocations/26299631-55a7-4624-b466-8ae39856bf6a [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2e0879a1-41c8-44c7-a6c9-bb9ad2900743 +Openstack-Request-Id: req-b5723ea6-4793-448a-9fa0-389628da09e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 20763844-b9e6-4bfc-86cb-170d2e942db8 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/9985fbb4-4e2f-4abd-9dfa-8a9cafa62576 -DELETE: /v1/allocations/9985fbb4-4e2f-4abd-9dfa-8a9cafa62576 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 26299631-55a7-4624-b466-8ae39856bf6a could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/6834e929-8e07-45f5-b7d0-d162925990b6 +DELETE: /v1/allocations/6834e929-8e07-45f5-b7d0-d162925990b6 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2ca8ec15-8ebf-4d4b-91c3-a96276b8e293 +Openstack-Request-Id: req-e29ada96-5f89-4d39-9856-5bdc27500a8b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 9985fbb4-4e2f-4abd-9dfa-8a9cafa62576 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/9c1d7ac5-b88d-4adf-8844-656bc24bdadf -DELETE: /v1/allocations/9c1d7ac5-b88d-4adf-8844-656bc24bdadf +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 6834e929-8e07-45f5-b7d0-d162925990b6 could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/f3c86b20-58c6-4239-9eea-6c18e5000eae +DELETE: /v1/allocations/f3c86b20-58c6-4239-9eea-6c18e5000eae GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-528f1b48-8234-4153-9d0c-834f844f3630 +Openstack-Request-Id: req-2d8c60fe-c693-443b-b9a3-615924430a4e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 9c1d7ac5-b88d-4adf-8844-656bc24bdadf could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/allocations/09bfb48d-7f99-45af-9a2c-06a915563064 -DELETE: /v1/allocations/09bfb48d-7f99-45af-9a2c-06a915563064 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation f3c86b20-58c6-4239-9eea-6c18e5000eae could not be found.\", \"debuginfo\": null}"} +API ACL Testing Path delete /v1/allocations/5d2c665a-72dd-4325-9956-b9bd6b6658a0 +DELETE: /v1/allocations/5d2c665a-72dd-4325-9956-b9bd6b6658a0 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1ae45395-610a-4208-8fa0-43423ccc8d26 +Openstack-Request-Id: req-31f2af11-9546-4622-8584-5664e2c74bef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 09bfb48d-7f99-45af-9a2c-06a915563064 could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 5d2c665a-72dd-4325-9956-b9bd6b6658a0 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9d7527ea-977b-495d-8dba-4c1bf5d72e65 +Openstack-Request-Id: req-4917e2ad-ae66-4d2d-9035-66bb98a64fe1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54007,7 +53736,7 @@ GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a738d331-f5a8-4491-8fbf-2f8234be7708 +Openstack-Request-Id: req-211d9751-ab61-4ceb-b29c-f1c603564c01 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54016,7 +53745,7 @@ GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-60e03868-dd2d-4037-85b0-ca8645596e0f +Openstack-Request-Id: req-6980c643-5ea8-4f8d-9209-e15ba769ab86 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54025,7 +53754,7 @@ DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-551570ad-dd23-4968-9738-f7fcd180f9c2 +Openstack-Request-Id: req-582fa7ea-e1e3-4d31-a0f6-8663d238dfc5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54034,7 +53763,7 @@ DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ea065e00-e130-4dfc-8178-c7415a1f5dd1 +Openstack-Request-Id: req-e4c1dfb5-12df-4006-bd01-0089a393c23f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54043,184 +53772,139 @@ DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_266_nodes_allocation_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_266_nodes_allocation_delete_observer ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces ... ok -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_fail +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_fail ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_with_reboot +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_with_reboot ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue_fails +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue_fails ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_267_deploy_templates_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_267_deploy_templates_post_admin ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces ... ok -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config_fail +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config_fail ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_268_deploy_templates_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_268_deploy_templates_post_member ... ok -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor ... ok -ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute -ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock ... ok -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-dfb4395f-98b8-49ad-b856-64e92e60d7ff -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "039cdbfc-67e9-4c53-b9a1-5a58b1a08fd4", "created_at": "2025-02-07T21:36:47.358064+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/039cdbfc-67e9-4c53-b9a1-5a58b1a08fd4", "rel": "self"}]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-dfb4395f-98b8-49ad-b856-64e92e60d7ff -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "039cdbfc-67e9-4c53-b9a1-5a58b1a08fd4", "created_at": "2025-02-07T21:36:47.358064+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/039cdbfc-67e9-4c53-b9a1-5a58b1a08fd4", "rel": "self"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-d305d46f-8282-4fa7-839e-08ecc2d6c285 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-d305d46f-8282-4fa7-839e-08ecc2d6c285 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-79f5c4d0-8bbc-4ea1-a72e-d8f4d441dad3 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "3aa9b237-28a8-422b-a8ee-cb48892a5078", "created_at": "2025-02-07T21:36:49.702782+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3aa9b237-28a8-422b-a8ee-cb48892a5078", "rel": "self"}]}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-79f5c4d0-8bbc-4ea1-a72e-d8f4d441dad3 -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"history": [{"uuid": "3aa9b237-28a8-422b-a8ee-cb48892a5078", "created_at": "2025-02-07T21:36:49.702782+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3aa9b237-28a8-422b-a8ee-cb48892a5078", "rel": "self"}]}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/cacb4ae7-c16a-4b63-914b-1d2edbcde7a7 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/cacb4ae7-c16a-4b63-914b-1d2edbcde7a7 {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-50c6b623-ca05-4850-aac8-3e793258a53c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "cacb4ae7-c16a-4b63-914b-1d2edbcde7a7", "created_at": "2025-02-07T21:36:50.907597+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/cacb4ae7-c16a-4b63-914b-1d2edbcde7a7", "rel": "self"}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-50c6b623-ca05-4850-aac8-3e793258a53c -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "cacb4ae7-c16a-4b63-914b-1d2edbcde7a7", "created_at": "2025-02-07T21:36:50.907597+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/cacb4ae7-c16a-4b63-914b-1d2edbcde7a7", "rel": "self"}]} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/92f1fddc-4697-4db9-b81c-7064c3e8a5e6 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/92f1fddc-4697-4db9-b81c-7064c3e8a5e6 {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-61435c86-2e8e-4c50-ad86-d8a53edd352b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -ACL Test GOT Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-61435c86-2e8e-4c50-ad86-d8a53edd352b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/af80c0c5-a2c6-4cf9-9566-df6bd246f0d9 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/af80c0c5-a2c6-4cf9-9566-df6bd246f0d9 {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-233411e0-2cdd-4e29-8396-08eed328a97b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "af80c0c5-a2c6-4cf9-9566-df6bd246f0d9", "created_at": "2025-02-07T21:36:53.020634+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/af80c0c5-a2c6-4cf9-9566-df6bd246f0d9", "rel": "self"}]} -ACL Test GOT Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-233411e0-2cdd-4e29-8396-08eed328a97b -X-Openstack-Ironic-Api-Maximum-Version: 1.80 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.80 -{"uuid": "af80c0c5-a2c6-4cf9-9566-df6bd246f0d9", "created_at": "2025-02-07T21:36:53.020634+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/af80c0c5-a2c6-4cf9-9566-df6bd246f0d9", "rel": "self"}]} -{'deployment_ari_path': 'http://192.1.2.3:1234/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_ramdisk', 'pxe_append_params': 'test_param ipa-global-request-id=req-8730955a-1319-4d55-be3b-32765ef52451', 'deployment_aki_path': 'http://192.1.2.3:1234/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_kernel', 'tftp_server': '127.0.0.1', 'ipxe_timeout': 0, 'ari_path': 'no_ramdisk', 'aki_path': 'no_kernel', 'initrd_filename': 'deploy_ramdisk'} -{'deploy_kernel': ('deploy_kernel', '/tmp/tmph1nvam76/tmpfat1arh8/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_kernel'), 'deploy_ramdisk': ('deploy_ramdisk', '/tmp/tmph1nvam76/tmpfat1arh8/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_ramdisk')} +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean_fails +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean_fails ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config_fail +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config_fail ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_269_deploy_templates_post_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_269_deploy_templates_post_observer ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor ... ok +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_with_reservation +ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_with_reservation ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_270_deploy_templates_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_270_deploy_templates_get_admin ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_port +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_port ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_271_deploy_templates_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_271_deploy_templates_get_member ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_memory_low +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_memory_low ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_272_deploy_templates_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_272_deploy_templates_get_observer ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port ... ok +ironic.tests.unit.drivers.test_ibmc.IBMCHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_ibmc.IBMCHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_273_deploy_templates_deploy_template_id_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_273_deploy_templates_deploy_template_id_get_admin ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username ... ok +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_cdrom +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_cdrom ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_274_deploy_templates_deploy_template_id_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_274_deploy_templates_deploy_template_id_get_member ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist ... ok +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_bios +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_bios ... ok +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_275_deploy_templates_deploy_template_id_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_275_deploy_templates_deploy_template_id_get_observer ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe ... ok +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device ... ok +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_276_deploy_templates_deploy_template_id_patch_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_276_deploy_templates_deploy_template_id_patch_admin ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_empty_boot_mode_list +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_empty_boot_mode_list ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_277_deploy_templates_deploy_template_id_patch_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_277_deploy_templates_deploy_template_id_patch_member ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_list_boot_modes_fail +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_list_boot_modes_fail ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_empty_boot_mode_list +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_empty_boot_mode_list ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b4489de3-ac5e-49cd-a922-0d7b09d71ff6 +Openstack-Request-Id: req-1ddb9208-f15e-4627-a3d1-21076b8e1ff2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54229,7 +53913,7 @@ POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-4b084271-a27e-46e3-9d28-869071f3ed1a +Openstack-Request-Id: req-bff9905e-4040-4e10-b805-acfcae8a111d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54238,7 +53922,7 @@ POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-17c9ca84-d8b0-40cd-bca9-935db4408fa7 +Openstack-Request-Id: req-683662a0-361e-4853-9e36-3cb1ca89182a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54247,7 +53931,7 @@ POST: /v1/deploy_templates {'name': 'CUSTOM_TEST_TEMPLATE', 'steps': [{'interface': 'deploy', 'step': 'noop', 'args': {}, 'priority': 0}]} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-47b2889d-874f-4c0c-8cc4-464c69280e81 +Openstack-Request-Id: req-1ef19dd5-edf8-4b4b-a78e-bafef63f7de4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54256,7 +53940,7 @@ GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-c55a9cd6-6001-4ef0-912d-a247c003cc4f +Openstack-Request-Id: req-10aef827-33bc-4b5b-8b08-fbe8b8ada993 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54265,7 +53949,7 @@ GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-80570306-3533-4ed6-9c47-5c566b48394c +Openstack-Request-Id: req-f3aad3a7-e695-480b-a3dc-97b132a41842 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54274,166 +53958,223 @@ GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-03b9b46a-8f59-49aa-8841-24f52e93a198 +Openstack-Request-Id: req-63606a7d-25a5-428d-9cf4-a7e13d624f67 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/deploy_templates/9601578f-4446-4b6b-a97c-e627555d3c06 -GET: /v1/deploy_templates/9601578f-4446-4b6b-a97c-e627555d3c06 {} +API ACL Testing Path get /v1/deploy_templates/3c8eafbd-9b66-40eb-91f8-b8d3a6157eef +GET: /v1/deploy_templates/3c8eafbd-9b66-40eb-91f8-b8d3a6157eef {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-f77d2a58-27c0-46db-b343-c23ef75279bb +Openstack-Request-Id: req-8cbbbc2a-3109-43aa-8b14-2ca556ea9bc7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/deploy_templates/ec1b3dda-69e0-4966-b135-2150412b8455 -GET: /v1/deploy_templates/ec1b3dda-69e0-4966-b135-2150412b8455 {} +API ACL Testing Path get /v1/deploy_templates/af693b13-2219-4af1-9971-ec97142c1d0d +GET: /v1/deploy_templates/af693b13-2219-4af1-9971-ec97142c1d0d {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-59176a49-c287-4e8b-95ee-194c4c2ffb3f +Openstack-Request-Id: req-bf526e68-2f8c-4987-99b1-e34b304130f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/deploy_templates/fe6785ac-a92f-4261-9c5f-6bf1dc0501ae -GET: /v1/deploy_templates/fe6785ac-a92f-4261-9c5f-6bf1dc0501ae {} +API ACL Testing Path get /v1/deploy_templates/6025f5c5-35ec-4c81-bb5b-a1a8896b7356 +GET: /v1/deploy_templates/6025f5c5-35ec-4c81-bb5b-a1a8896b7356 {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-05f23e51-f1d8-436b-84f3-ff1df653a182 +Openstack-Request-Id: req-f86b5e17-fce6-43b0-8fd1-f49d43cad45b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/deploy_templates/4f573786-ad72-403e-8a63-da54792a7bfd -PATCH: /v1/deploy_templates/4f573786-ad72-403e-8a63-da54792a7bfd [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +API ACL Testing Path patch /v1/deploy_templates/3fa09b36-fae9-4ffe-b318-3177ba0cc6b6 +PATCH: /v1/deploy_templates/3fa09b36-fae9-4ffe-b318-3177ba0cc6b6 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-2ae4d157-7d97-468b-b125-e5b003912d0f +Openstack-Request-Id: req-b3bab6ad-f4e5-4be1-a5ac-270ec2a3fd41 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:update\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/deploy_templates/15207372-5c51-4137-8e6c-1741238dc720 -PATCH: /v1/deploy_templates/15207372-5c51-4137-8e6c-1741238dc720 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +API ACL Testing Path patch /v1/deploy_templates/0739eacf-9eb9-434c-93df-e08a8e9b3483 +PATCH: /v1/deploy_templates/0739eacf-9eb9-434c-93df-e08a8e9b3483 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-22c9f3a2-b3d6-4263-b9b7-783a642f1bbf +Openstack-Request-Id: req-ff83dfa2-94a3-4953-8374-4f599b22396e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:update\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path patch /v1/deploy_templates/ab8125df-ae40-4b71-a91d-46b24403761a -PATCH: /v1/deploy_templates/ab8125df-ae40-4b71-a91d-46b24403761a [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] +API ACL Testing Path patch /v1/deploy_templates/6e160cf8-a188-4101-8545-f66cc0fb2b0c +PATCH: /v1/deploy_templates/6e160cf8-a188-4101-8545-f66cc0fb2b0c [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_278_deploy_templates_deploy_template_id_patch_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_278_deploy_templates_deploy_template_id_patch_observer ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_no_secrets +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_no_secrets ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_not_affected +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_not_affected ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_279_deploy_templates_deploy_template_id_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_279_deploy_templates_deploy_template_id_delete_admin ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_not_persistent +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_not_persistent ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_280_deploy_templates_deploy_template_id_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_280_deploy_templates_deploy_template_id_delete_member ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_281_deploy_templates_deploy_template_id_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_281_deploy_templates_deploy_template_id_delete_observer ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_drac_boot_device +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_drac_boot_device ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_282_chassis_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_282_chassis_post_admin ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_different_inventory_time -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_different_inventory_time ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_same_inventory_time -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_same_inventory_time ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_job_not_scheduled +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_job_not_scheduled ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_283_chassis_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_283_chassis_post_member ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_same_inventory_time_timeout -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_same_inventory_time_timeout ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_fail +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_fail ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_with_clean_step +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_with_clean_step ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_284_chassis_post_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_284_chassis_post_observer ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_completed_with_errors -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_completed_with_errors ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_missing +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_missing ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_set +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_set ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_without_clean_step +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_without_clean_step ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_missing +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_with_clean_step +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_with_clean_step ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_285_chassis_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_285_chassis_get_admin ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_failed -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_failed ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_still_running -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_still_running ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_default ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_without_clean_step +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_without_clean_step ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_remove +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_remove ... ok +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_286_chassis_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_286_chassis_get_member ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status_no_config_jobs -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status_no_config_jobs ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set ... ok +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state_fail +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state_fail ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_287_chassis_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_287_chassis_get_observer ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status_no_driver -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status_no_driver ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_conf_commit_fail -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_conf_commit_fail ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_fail +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_fail ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_288_chassis_detail_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_288_chassis_detail_get_admin ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_conf_set_fail -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_conf_set_fail ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra ... ok +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_power_change_success +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_power_change_success ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra ... ok +[NodeHistory(conductor='fake-mini',created_at=2024-01-06T15:36:17Z,event='three',event_type='UNKNOWN',id=3,node_id=10,severity='INFO',updated_at=None,user=None,uuid=8ca61d31-c471-4ec1-95d0-7709f09f0be5), NodeHistory(conductor='fake-mini',created_at=2024-01-06T15:36:17Z,event='two',event_type='UNKNOWN',id=5,node_id=11,severity='INFO',updated_at=None,user=None,uuid=9f0e9f72-5525-4705-a53f-227e227596af), NodeHistory(conductor='fake-mini',created_at=2024-01-06T15:36:17Z,event='three',event_type='UNKNOWN',id=6,node_id=11,severity='INFO',updated_at=None,user=None,uuid=cf9530f5-07cd-4f86-abfd-00e95797e309), NodeHistory(conductor='fake-mini',created_at=2024-01-06T15:36:17Z,event='two',event_type='UNKNOWN',id=8,node_id=12,severity='INFO',updated_at=None,user=None,uuid=57d1dfed-b190-442f-909d-8a4cc9e88856), NodeHistory(conductor='fake-mini',created_at=2024-01-06T15:36:17Z,event='three',event_type='UNKNOWN',id=9,node_id=12,severity='INFO',updated_at=None,user=None,uuid=5fe1eb48-ceab-442c-97f7-524c6f1fd6bb), NodeHistory(conductor='fake-mini',created_at=2024-01-06T15:36:17Z,event='final',event_type='UNKNOWN',id=10,node_id=10,severity='INFO',updated_at=None,user=None,uuid=c1c48237-8ceb-4d76-96a9-0e27e393bea2)] ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_289_chassis_detail_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_289_chassis_detail_get_member ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_configuration_clean -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_configuration_clean ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_configuration_deploy -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_configuration_deploy ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_290_chassis_detail_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_290_chassis_detail_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_291_chassis_chassis_id_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_291_chassis_chassis_id_get_admin ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_cache_bios_settings_fail -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_cache_bios_settings_fail ... ok GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-7952562f-232d-41af-9e5d-0e9c399f51e3 +Openstack-Request-Id: req-b8869800-a9ed-4add-80bf-b04b8d0bd454 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:update\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/deploy_templates/75c896bd-eb82-4515-8ea9-17aea5a1e639 -DELETE: /v1/deploy_templates/75c896bd-eb82-4515-8ea9-17aea5a1e639 +API ACL Testing Path delete /v1/deploy_templates/74d45937-9951-4fd8-a9d0-d2abf3a0af3d +DELETE: /v1/deploy_templates/74d45937-9951-4fd8-a9d0-d2abf3a0af3d GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-9183f540-2aab-4aac-b3c2-235af53cbecd +Openstack-Request-Id: req-11bd4310-2e9d-4b52-ada7-b21be5e84927 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/deploy_templates/c6d81ecd-f123-4653-81bf-b4c2918c9222 -DELETE: /v1/deploy_templates/c6d81ecd-f123-4653-81bf-b4c2918c9222 +API ACL Testing Path delete /v1/deploy_templates/ba989e33-0c0d-4434-b483-0ee894a1caeb +DELETE: /v1/deploy_templates/ba989e33-0c0d-4434-b483-0ee894a1caeb GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-8badd893-ba74-4360-9d0c-2c3206ab2bbc +Openstack-Request-Id: req-58be1449-c536-4df3-b221-51677f153f68 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} -API ACL Testing Path delete /v1/deploy_templates/c1996f6a-96e6-4377-8486-abbddfa62169 -DELETE: /v1/deploy_templates/c1996f6a-96e6-4377-8486-abbddfa62169 +API ACL Testing Path delete /v1/deploy_templates/aab6086e-e7b7-49a3-a323-9a089feb19b0 +DELETE: /v1/deploy_templates/aab6086e-e7b7-49a3-a323-9a089feb19b0 GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-9ec4be41-c35a-4533-9844-f55f348c201e +Openstack-Request-Id: req-ba0a275b-41e3-4318-a3b5-7f61b8e4b844 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54442,7 +54183,7 @@ POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-ce5d7913-636d-40cd-87f9-71f107ec5821 +Openstack-Request-Id: req-0c2161b2-b90f-43ca-bade-37b4e55d06b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54451,7 +54192,7 @@ POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-865b2a06-abed-4adb-935c-ce896f4546b0 +Openstack-Request-Id: req-3f9f9318-b061-4f2c-8fc9-c4c46119a813 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54460,7 +54201,7 @@ POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-e7f1bfa9-4cf7-4217-a535-cf8d4f26ac58 +Openstack-Request-Id: req-074bf24a-2828-49c9-95d0-0a5e0f5b0efb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54469,7 +54210,7 @@ GET: /v1/chassis {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-2f9ad61f-43c0-45ec-af16-b790532aa38e +Openstack-Request-Id: req-853aa9c9-0e7f-4631-aa4a-9fd1e0109d5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54478,7 +54219,7 @@ GET: /v1/chassis {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-e342ebc1-4550-42e6-91dd-2882c6debfbe +Openstack-Request-Id: req-00cbcf8e-7308-4e29-9430-a072576ead75 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54487,7 +54228,7 @@ GET: /v1/chassis {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-ff0b9a1b-eb92-4dc0-a5a8-6e26cc76cb1d +Openstack-Request-Id: req-a59cd6f0-1abd-4c9d-b6b2-266a14f2b823 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54496,7 +54237,7 @@ GET: /v1/chassis/detail {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-cdeb77e1-485a-4b94-8708-be7a6585efce +Openstack-Request-Id: req-eaba24e8-d889-46dc-9b06-c41cfc1257a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54505,7 +54246,7 @@ GET: /v1/chassis/detail {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-048e0b47-8d4a-4961-8f1f-27f87e42432c +Openstack-Request-Id: req-058399fb-d40d-4224-b822-d963f3f3f381 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54514,7 +54255,7 @@ GET: /v1/chassis/detail {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-da16bbb7-2878-4d81-a136-b72829b0c6ca +Openstack-Request-Id: req-d6c9b8f6-e02a-4bbf-905b-9b831c7c0651 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54523,88 +54264,44 @@ GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-f3590c86-fa00-4b8f-8994-5852be554e72 +Openstack-Request-Id: req-2eef2df4-0701-46ca-92f3-df85721bfaf5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_292_chassis_chassis_id_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_292_chassis_chassis_id_get_member ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_cache_bios_settings_noop -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_cache_bios_settings_noop ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_293_chassis_chassis_id_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_293_chassis_chassis_id_get_observer ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_clean -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_clean ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_commit_fail -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_commit_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_deploy -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_deploy ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_294_chassis_chassis_id_patch_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_294_chassis_chassis_id_patch_admin ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_set_fail -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_set_fail ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_295_chassis_chassis_id_patch_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_295_chassis_chassis_id_patch_member ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_get_properties -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_success +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_success ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_296_chassis_chassis_id_patch_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_296_chassis_chassis_id_patch_observer ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_validate -ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs -ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs ... ok -ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs_fail -ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs_fail ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_297_chassis_chassis_id_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_297_chassis_chassis_id_delete_admin ... ok -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration ... ok -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_298_chassis_chassis_id_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_298_chassis_chassis_id_delete_member ... ok -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings ... ok -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed ... ok -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset ... ok -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate -ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_299_chassis_chassis_id_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_299_chassis_chassis_id_delete_observer ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_300_node_history_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_300_node_history_get_admin ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_301_node_history_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_301_node_history_get_member ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_302_node_history_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_302_node_history_get_observer ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_303_node_history_get_entry_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_303_node_history_get_entry_admin ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_304_node_history_get_entry_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_304_node_history_get_entry_member ... ok API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-f04e695d-7acb-4593-9dcc-bde0ca7539d9 +Openstack-Request-Id: req-5831f849-e5c1-45ec-81a8-fec2afcbbd6e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54613,7 +54310,7 @@ GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-075a7390-6136-4b44-bd19-680cd250c723 +Openstack-Request-Id: req-949d4a0b-e630-4261-8b1b-a61dbf8af6c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54622,7 +54319,7 @@ PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-55398109-a97b-4793-aa62-75e05a2b8e69 +Openstack-Request-Id: req-a6bd1cdb-6dc2-433c-8904-fff6003b5ab3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54631,7 +54328,7 @@ PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-934bd4b9-08b9-4a49-a2dc-7b1c15ac260e +Openstack-Request-Id: req-75848419-cbf1-49b5-b94a-fdcf8a8fa47a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54640,7 +54337,7 @@ PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-103df22f-9b16-4a8c-829e-e64ee94e5481 +Openstack-Request-Id: req-f55eb2d3-8bed-4c24-9beb-b5e2d306dd69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54649,7 +54346,7 @@ DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-0bcc2426-77de-42d7-a1fc-68b879d9cb98 +Openstack-Request-Id: req-9fb5843c-1140-492a-87d8-8d8f70cde60c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54658,7 +54355,7 @@ DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-aef64570-44ee-448c-a875-dc6a130ddeaf +Openstack-Request-Id: req-7f67a2cc-0574-4ca9-ac9c-9200af636ee1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54667,7 +54364,7 @@ DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-f26e7f1c-0627-4bd4-9c44-aeb25ff425c7 +Openstack-Request-Id: req-16930e20-9809-4fb4-8b1c-7dcb4b01d3eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54676,7 +54373,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1c1f6ef1-cc63-4591-9a42-1918ad60bfff +Openstack-Request-Id: req-6bc5d92d-b230-4bb8-8d03-504872c6744b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54685,7 +54382,7 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a21f8b8a-0d69-4be7-ba88-c8cfad0f6a7a +Openstack-Request-Id: req-6027f629-48b9-4e58-a590-411a40bd775e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -54694,590 +54391,964 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-89b6d18d-defa-4a30-9e3c-4d79752cb252 +Openstack-Request-Id: req-ece94e4e-c574-4aa6-a0cf-deb174bf8925 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/321ab314-42b5-4719-a229-831aab225539 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/321ab314-42b5-4719-a229-831aab225539 {} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/98bc6197-474a-41f8-a89d-32442ea693b5 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/98bc6197-474a-41f8-a89d-32442ea693b5 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-86bac9d6-b73b-4c1f-ab05-7e1dc09f707b +Openstack-Request-Id: req-738c453e-ab81-4fbb-b351-9556e2c1a4f2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/1f7b5202-8eac-4221-a06d-c7f72cd23291 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/1f7b5202-8eac-4221-a06d-c7f72cd23291 {} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f5b1f363-b78f-4cfa-b238-1faaa63df077 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f5b1f363-b78f-4cfa-b238-1faaa63df077 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-fd925865-2b58-43fd-ab9e-b4ccfeba7a05 +Openstack-Request-Id: req-8aa8a42e-8719-4313-8953-a7bcd874e6c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/934c6c9a-50ce-42d8-a1d2-8620da387c95 +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7f8d2ff0-ec6a-4171-9c8e-06a819598678 ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_305_node_history_get_entry_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_305_node_history_get_entry_observer ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception ... ok -ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable -ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable ... ok -ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable -ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist ... ok -ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check -ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap ... ok -ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id -ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids ... ok -ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup -ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_01 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_01 ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_02 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_02 ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_03 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_03 ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_04 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_04 ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_05 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_05 ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_removed -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_removed ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_07 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_07 ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_08 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_08 ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_11 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_11 ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_13 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_13 ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_14 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_14 ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_15 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_15 ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_clean -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_clean ... ok -ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state -ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_deploy -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_deploy ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_create -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_create ... ok -ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance -ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_delete -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_delete ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller ... ok -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid1 -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid1 ... ok -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid5 -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid5 ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid6 -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid6 ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_failed -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_failed ... ok -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_locked -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_locked ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_still_processing -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_still_processing ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_success -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_success ... ok -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_task_mon_error -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_task_mon_error ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid10 -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid10 ... ok -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid5 -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid5 ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1a -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1a ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_immediate -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_immediate ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_on_reset -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_on_reset ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2 -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2 ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2_on_reset -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2_on_reset ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_3 -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_3 ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_broken_driver -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_broken_driver ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_4 -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_4 ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5a -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5a ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5b -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5b ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_6 -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_6 ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_interface_type -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_interface_type ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_immediate -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_immediate ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_on_reset -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_on_reset ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_get_physical_disks -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_get_physical_disks ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_loading_error -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_loading_error ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_update_raid_config_missing_raid_type -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_update_raid_config_missing_raid_type ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config_scsi -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config_scsi ... ok -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_volume_create_error_handler -ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_volume_create_error_handler ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass ... ok +ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch +ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch ... ok +ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch_validation_failed +ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch_validation_failed ... ok +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache ... ok +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls ... ok +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache ... ok +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl ... ok +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled ... ok +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled ... ok +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_off +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_off ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_connection_error +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_connection_error ... ok +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_empty +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_empty ... ok +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on_timeout +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on_timeout ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_error +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_error ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_noauth +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_noauth ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_invalid_json +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_invalid_json ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_mold_connection_error_exceeded +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_mold_connection_error_exceeded ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift_noauth +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift_noauth ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error_exceeded +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error_exceeded ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_error +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_error ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_noauth +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_noauth ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift ... ok +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift_noauth +ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift_noauth ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_skip_MAX +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_skip_MAX ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format ... ok +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations ... ok +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation ... ok +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation_with_node_id +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation_with_node_id ... ok +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node ... ok +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node ... ok +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance ... ok +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node ... ok +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node ... ok +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations +ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc ... ok +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community ... ok -ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error -ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower ... ok -ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled -ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver ... ok -ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists -ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet ... ok -ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error -ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address ... ok -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c ... ok -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_config_false -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_config_false ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver ... ok -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user ... ok -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info_string -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info_string ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_raritan_pdu2 -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_raritan_pdu2 ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community ... ok -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry3 -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry3 ... ok -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry4 -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry4 ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port ... ok -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 ... ok -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_powered_after_heartbeat -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_powered_after_heartbeat ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c ... ok -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto ... ok -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info_string -ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info_string ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto ... ok -ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting -ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey ... ok -ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_always -ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_always ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key ... ok -ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_default -ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_default ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix ... ok -ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_never -ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_never ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_vertivgeist_pdu -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_vertivgeist_pdu ... ok -ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device -ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community ... ok -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration ... ok -ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid -ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid ... ok -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 ... ok -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid ... ok -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 ... ok -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 ... ok -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config ... ok -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 ... ok -ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce -ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce ... ok -ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values -ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 ... ok -ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation -ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success -ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_configdrive_as_dict -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_configdrive_as_dict ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive_as_dict -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive_as_dict ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_create -ironic.tests.unit.objects.test_node.TestNodeObject.test_create ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties -ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits -ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface_overriden -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface_overriden ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_list -ironic.tests.unit.objects.test_node.TestNodeObject.test_list ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields -ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_empty_trait_present -ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_empty_trait_present ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_traits -ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_traits ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas -ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh -ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_release -ironic.tests.unit.objects.test_node.TestNodeObject.test_release ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found -ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve -ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found -ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_save -ironic.tests.unit.objects.test_node.TestNodeObject.test_save ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers_fail ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_foreign_drives_with_foreign_drives -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_foreign_drives_with_foreign_drives ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning -ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties -ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties ... ok +ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers +ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers ... ok +ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers +ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers ... ok +ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker +ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker ... ok +ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers +ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers ... ok +ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization +ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization ... ok +ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps +ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps ... ok +ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_no_skip +ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_no_skip ... ok +ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_unset_clean_step +ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_unset_clean_step ... ok +ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps +ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps ... ok +ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_no_skip +ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_no_skip ... ok +ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_unset_deploy_step +ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_unset_deploy_step ... ok +ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_steps_exception +ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_steps_exception ... ok +ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts +ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_different_inventory_time +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_different_inventory_time ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_same_inventory_time +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_same_inventory_time ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_same_inventory_time_timeout +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_same_inventory_time_timeout ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_completed_with_errors +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_completed_with_errors ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_failed +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_failed ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_still_running +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_still_running ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status_no_config_jobs +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status_no_config_jobs ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status_no_driver +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status_no_driver ... ok +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_conf_commit_fail +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_conf_commit_fail ... ok +ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_failed +ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_failed ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_conf_set_fail +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_conf_set_fail ... ok +ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_with_delete +ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_with_delete ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_configuration_clean +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_configuration_clean ... ok +ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_delete +ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_delete ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_configuration_deploy +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_configuration_deploy ... ok +ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_nonroot +ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_nonroot ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_cache_bios_settings_fail +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_cache_bios_settings_fail ... ok +ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_root +ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_root ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_cache_bios_settings_noop +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_cache_bios_settings_noop ... ok +ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_delete_configuration_failed +ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_delete_configuration_failed ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_clean +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_clean ... ok +ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_delete_configuration_success +ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_delete_configuration_success ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_commit_fail +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_commit_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_deploy +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_deploy ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_set_fail +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_set_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_deprecated +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_deprecated ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_get_properties +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso_deprecated +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso_deprecated ... ok +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_validate +ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_config +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_config ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_iso +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_iso ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing +ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device_inserted +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device_inserted ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_while_ejecting +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_while_ejecting ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_compatible_with_idrac +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_compatible_with_idrac ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_incompatible_with_idrac +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_incompatible_with_idrac ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_cdrom_and_floppy +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_cdrom_and_floppy ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_only_cdrom +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_only_cdrom ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_ramdisk +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_ramdisk ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_everything +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_everything ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_not_inserted +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_not_inserted ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_specific +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_specific ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_unknown +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_unknown ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_loading_error +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_loading_error ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info_exc +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info_exc ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso_deprecated +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso_deprecated ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_iso +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_iso ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_ramdisk +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_ramdisk ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable_deprecated +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable_deprecated ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_rescue +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_rescue ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection_missing +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection_missing ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_glance +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_glance ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver_exc +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver_exc ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_deprecated +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_deprecated ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false +ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false ... ok +ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true +ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_dir_path_verify_ca +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_dir_path_verify_ca ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_file_path_verify_ca +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_file_path_verify_ca ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track_impossible +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track_impossible ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_password +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_password ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_config +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_config ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_proto +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_proto ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_debug +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_debug ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_password +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_password ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_proto +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_proto ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_user +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_user ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_usb +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_usb ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version_fips +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version_fips ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_boot_iso +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_boot_iso ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_verify_ca +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_verify_ca ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_correct_vendor +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_correct_vendor ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection_missing +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection_missing ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_auth_password +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_auth_password ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_kernel_ramdisk +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_kernel_ramdisk ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_priv_password +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_priv_password ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_user +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_user ... ok +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing +ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_auth_password +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_auth_password ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue +ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_priv_password +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_priv_password ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel +ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_snmpv3 +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_snmpv3 ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_string_bool_verify_ca +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_string_bool_verify_ca ... ok +ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk +ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_using_snmp_security +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_using_snmp_security ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_on ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_with_smartnic_port +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_with_smartnic_port ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout ... ok +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled ... ok +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl ... ok +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_qcow2 +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_qcow2 ... ok +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_raw +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_raw ... ok +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_indicators_default_impl +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_indicators_default_impl ... ok +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb ... ok +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_http_image +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_http_image ... ok +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_indicator_state_default_impl +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_indicator_state_default_impl ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source ... ok +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash ... ok +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source2 +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source2 ... ok +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args ... ok +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type ... ok +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_file +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_file ... ok +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_http +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_http ... ok +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_via_node +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_via_node ... ok +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http ... ok +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload ... ok +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits ... ok +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up ... ok +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none ... ok +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload ... ok +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy ... ok +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload ... ok +ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object +ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object ... ok +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_fast_track +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_fast_track ... ok +ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad +ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad ... ok +ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old +ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old ... ok +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_storage_should_write_image_false +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_storage_should_write_image_false ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_as_dict +ironic.tests.unit.objects.test_objects.TestObject.test_as_dict ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object +ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list +ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list ... ok +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_with_deployment_reboot +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_with_deployment_reboot ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat +ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes +ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes ... ok +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_get_properties +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_get_properties ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 ... ok +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive +ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive ... ok +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_fast_track +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_fast_track ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_contains +ironic.tests.unit.objects.test_objects.TestObject.test_contains ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new ... ok +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_validate +ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_validate ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_dehydration +ironic.tests.unit.objects.test_objects.TestObject.test_dehydration ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db +ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade +ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned +ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get +ironic.tests.unit.objects.test_objects.TestObject.test_get ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_broken_fast_track +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_broken_fast_track ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_updates +ironic.tests.unit.objects.test_objects.TestObject.test_get_updates ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_hydration +ironic.tests.unit.objects.test_objects.TestObject.test_hydration ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns +ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error +ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_load +ironic.tests.unit.objects.test_objects.TestObject.test_load ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base +ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive +ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set +ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor +ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields +ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance +ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_object_property +ironic.tests.unit.objects.test_objects.TestObject.test_object_property ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error +ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object +ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object +ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability +ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_static_result +ironic.tests.unit.objects.test_objects.TestObject.test_static_result ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_supports_version +ironic.tests.unit.objects.test_objects.TestObject.test_supports_version ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype +ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume +ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_updates +ironic.tests.unit.objects.test_objects.TestObject.test_updates ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context +ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context ... ok GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-25818f3a-0229-4065-abb6-63e1a6f0bb0c +Openstack-Request-Id: req-4d5d6082-1a53-4295-b35f-b2466de90b85 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-25818f3a-0229-4065-abb6-63e1a6f0bb0c +Openstack-Request-Id: req-4d5d6082-1a53-4295-b35f-b2466de90b85 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} -API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e86d8978-7646-4ba0-9194-91db682510c9 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e86d8978-7646-4ba0-9194-91db682510c9 {} +API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/de0fc816-7456-4ca1-ad18-7af563d50593 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/de0fc816-7456-4ca1-ad18-7af563d50593 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7361f734-6af3-490d-a8fb-3827040c9f2a +Openstack-Request-Id: req-ba1df56d-7e88-46df-826f-e97d0698afff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7361f734-6af3-490d-a8fb-3827040c9f2a +Openstack-Request-Id: req-ba1df56d-7e88-46df-826f-e97d0698afff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 @@ -55286,171 +55357,18 @@ GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6ee506a1-5e07-4932-a6eb-0b89f558a7e4 +Openstack-Request-Id: req-9677255a-fa13-4210-8274-9d216de2e3a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6ee506a1-5e07-4932-a6eb-0b89f558a7e4 +Openstack-Request-Id: req-9677255a-fa13-4210-8274-9d216de2e3a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} -GET: /v1/chassis {} -GOT:{'chassis': []} -GET: /v1/chassis {} -GOT:Response: 401 Unauthorized -Content-Type: application/json -Www-Authenticate: Basic realm="Baremetal API" -{"error":{"message":"Authorization required","code":401}} -GET: /v1/ {} -GOT:{'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.80'}} -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_foreign_drives_with_no_foreign_drives -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_foreign_drives_with_no_foreign_drives ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_apply_configuration -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_apply_configuration ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_delete_existing -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_delete_existing ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_with_sharing_disabled -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_with_sharing_disabled ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_clean -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_clean ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_deploy -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_deploy ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_physical_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_physical_disks ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_without_drives_conversion -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_without_drives_conversion ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_clean -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_clean ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_deploy -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_deploy ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_no_change -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_no_change ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_with_mix_realtime_controller_in_ehba_mode -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_with_mix_realtime_controller_in_ehba_mode ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_with_mix_realtime_controller_in_raid_mode -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_with_mix_realtime_controller_in_raid_mode ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks ... ok -ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method -ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method ... ok -ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_managers_fail -ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_managers_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_no_managers -ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_no_managers ... ok -ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_oem_not_found -ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_oem_not_found ... ok -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_power_state -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_power_state ... ok -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_supported_power_states -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_supported_power_states ... ok -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state ... ok -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_fail -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_fail ... ok -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_not_reached -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_not_reached ... ok -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_timeout -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_timeout ... ok -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_validate -ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_handle_ibmc_exception_retry -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_handle_ibmc_exception_retry ... ok -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info ... ok -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme ... ok -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme_with_port -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme_with_port ... ok -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_address -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_address ... ok -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca ... ok -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca ... ok -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_missing_info -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_missing_info ... ok -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_path_verify_ca -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_path_verify_ca ... ok -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_capath -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_capath ... ok -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca ... ok -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary -ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk ... ok -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist -ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot @@ -55469,6 +55387,24 @@ ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_boot_iso_only +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_boot_iso_only ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image_anaconda +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image_anaconda ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_ramdisk_deploy +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_ramdisk_deploy ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up ... ok ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs @@ -55479,124 +55415,225 @@ ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up ... ok ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_large_url -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_large_url ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_linkfail -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_linkfail ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_raises_memory_guard -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_raises_memory_guard ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port_auto_allocate -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port_auto_allocate ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_alloc_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_alloc_port ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_with_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_with_port ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport ... ok -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create ... ok -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy ... ok -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id ... ok -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name ... ok -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid ... ok -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list ... ok -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names ... ok -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh ... ok -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save -ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save ... ok +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint ... ok +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_mdns +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_mdns ... ok +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_no_loopback +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_no_loopback ... ok +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_override +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_override ... ok +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__check_cipher_suite_errors +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__check_cipher_suite_errors ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_empty_list +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_empty_list ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_one_element +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_one_element ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_returns_last_to_first +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_returns_last_to_first ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_error_noconfig +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_error_noconfig ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_try_different_cipher_suite +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_try_different_cipher_suite ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries_multiple +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries_multiple ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timeout +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timeout ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__ipmitool_timing_args +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__ipmitool_timing_args ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_ipmi_1_5 +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_ipmi_1_5 ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_not_a_number +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_not_a_number ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_allocated +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_allocated ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_specified +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_specified ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout ... ok +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios ... ok +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console ... ok +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect ... ok +WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name ... ok +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue ... ok +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor ... ok +ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps +ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps ... ok +ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables +ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces ... ok ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create ... ok ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create_with_node @@ -55613,36 +55650,36 @@ ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_not_found ... ok ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_refresh ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_refresh ... ok -ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce -ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce ... ok -ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values -ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values ... ok -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/934c6c9a-50ce-42d8-a1d2-8620da387c95 {} +ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly +ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly ... ok +ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly +ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly ... ok +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7f8d2ff0-ec6a-4171-9c8e-06a819598678 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bc0b8e04-975f-4034-a3c4-645a2a7ab555 +Openstack-Request-Id: req-28b5452f-5edb-423f-b378-15fac48a1058 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ---------------------------------------------------------------------- -Ran 8768 tests in 991.409s +Ran 8768 tests in 452.644s OK (skipped=44) + stestr slowest Test id Runtime (s) ------------------------------------------------------------------------------------------------------- ----------- -ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync 446.050 -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version 439.523 -ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync 438.854 -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version 436.289 -ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions 16.686 -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid 14.760 -ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version 11.080 -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces 10.724 -ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add 9.145 -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version 8.849 +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version 141.755 +ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync 89.795 +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress 78.248 +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait 78.179 +ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id 78.068 +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated 78.057 +ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links 78.038 +ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup 78.016 +ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals 78.008 +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached 77.703 + rm -rf .stestr mkdir -p /build/reproducible-path/ironic-21.1.0/debian/ironic-common/usr/share/ironic-common PYTHONPATH=/build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages oslo-config-generator \ @@ -55673,9 +55710,9 @@ --namespace keystonemiddleware.audit \ --namespace keystonemiddleware.auth_token pkgos-readd-keystone-authtoken-missing-options /build/reproducible-path/ironic-21.1.0/debian/ironic-common/usr/share/ironic-common/ironic.conf keystone_authtoken ironic -pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.sWqQwT:[keystone_authtoken]/www_authenticate_uri -pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.sWqQwT:[keystone_authtoken]/auth_type -pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.sWqQwT:[keystone_authtoken]/region_name +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.qHOUVa:[keystone_authtoken]/www_authenticate_uri +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.qHOUVa:[keystone_authtoken]/auth_type +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.qHOUVa:[keystone_authtoken]/region_name # We're using python3, the default isn't good, it's using py2. pkgos-fix-config-default /build/reproducible-path/ironic-21.1.0/debian/ironic-common/usr/share/ironic-common/ironic.conf DEFAULT pybasedir /usr/lib/python3/site-packages/ironic pkgos_inifile: Setting value in /build/reproducible-path/ironic-21.1.0/debian/ironic-common/usr/share/ironic-common/ironic.conf:[DEFAULT]/pybasedir @@ -57092,11 +57129,11 @@ touch /build/reproducible-path/ironic-21.1.0/debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/toggle.js #rm /build/reproducible-path/ironic-21.1.0/debian/ironic-doc/usr/share/doc/ironic-doc/html/search.html dh_sphinxdoc -O--buildsystem=python_distutils +dh_sphinxdoc: warning: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/webui-popover.js dh_sphinxdoc: warning: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/navigation.js -dh_sphinxdoc: warning: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/toggle.js dh_sphinxdoc: warning: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/bootstrap.min.js +dh_sphinxdoc: warning: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/toggle.js dh_sphinxdoc: warning: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/docs.js -dh_sphinxdoc: warning: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/webui-popover.js make[1]: Leaving directory '/build/reproducible-path/ironic-21.1.0' debian/rules override_dh_installchangelogs make[1]: Entering directory '/build/reproducible-path/ironic-21.1.0' @@ -57134,15 +57171,17 @@ cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done -+ ls -1 debian/ironic-api.init.in debian/ironic-conductor.init.in -+ echo debian/ironic-api.init.in -+ sed s/.init.in// +++ ls -1 debian/ironic-api.init.in debian/ironic-conductor.init.in ++ for i in `ls -1 debian/*.init.in` +++ sed s/.init.in// +++ echo debian/ironic-api.init.in + MYINIT=debian/ironic-api + cp debian/ironic-api.init.in debian/ironic-api.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/ironic-api.init.in -+ echo debian/ironic-conductor.init.in -+ sed s/.init.in// ++ for i in `ls -1 debian/*.init.in` +++ sed s/.init.in// +++ echo debian/ironic-conductor.init.in + MYINIT=debian/ironic-conductor + cp debian/ironic-conductor.init.in debian/ironic-conductor.init + cat /usr/share/openstack-pkg-tools/init-script-template @@ -57152,7 +57191,7 @@ MYPKG=`echo $i | sed s/.service.in//` ; \ cp $MYPKG.service.in $MYPKG.service ; \ done -+ ls -1 debian/*.service.in +++ ls -1 'debian/*.service.in' ls: cannot access 'debian/*.service.in': No such file or directory # Generate the systemd unit if there's no already existing .service.in set -e ; set -x ; for i in `ls debian/*.init.in` ; do \ @@ -57161,16 +57200,18 @@ pkgos-gen-systemd-unit $i ; \ fi \ done -+ ls debian/ironic-api.init.in debian/ironic-conductor.init.in -+ echo debian/ironic-api.init.in -+ sed s/.init.in/.service.in/ +++ ls debian/ironic-api.init.in debian/ironic-conductor.init.in ++ for i in `ls debian/*.init.in` +++ sed s/.init.in/.service.in/ +++ echo debian/ironic-api.init.in + MYINIT=debian/ironic-api.service.in -+ [ -e debian/ironic-api.service.in ] ++ '[' -e debian/ironic-api.service.in ']' + pkgos-gen-systemd-unit debian/ironic-api.init.in -+ echo debian/ironic-conductor.init.in -+ sed s/.init.in/.service.in/ ++ for i in `ls debian/*.init.in` +++ echo debian/ironic-conductor.init.in +++ sed s/.init.in/.service.in/ + MYINIT=debian/ironic-conductor.service.in -+ [ -e debian/ironic-conductor.service.in ] ++ '[' -e debian/ironic-conductor.service.in ']' + pkgos-gen-systemd-unit debian/ironic-conductor.init.in dh_installinit --error-handler=true make[1]: Leaving directory '/build/reproducible-path/ironic-21.1.0' @@ -57200,10 +57241,10 @@ make[1]: Leaving directory '/build/reproducible-path/ironic-21.1.0' dh_md5sums -O--buildsystem=python_distutils dh_builddeb -O--buildsystem=python_distutils +dpkg-deb: building package 'ironic-api' in '../ironic-api_21.1.0-3_all.deb'. dpkg-deb: building package 'ironic-doc' in '../ironic-doc_21.1.0-3_all.deb'. dpkg-deb: building package 'python3-ironic' in '../python3-ironic_21.1.0-3_all.deb'. dpkg-deb: building package 'ironic-conductor' in '../ironic-conductor_21.1.0-3_all.deb'. -dpkg-deb: building package 'ironic-api' in '../ironic-api_21.1.0-3_all.deb'. dpkg-deb: building package 'ironic-common' in '../ironic-common_21.1.0-3_all.deb'. dpkg-genbuildinfo --build=binary -O../ironic_21.1.0-3_amd64.buildinfo dpkg-genchanges --build=binary -O../ironic_21.1.0-3_amd64.changes @@ -57213,12 +57254,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/4102781/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/4102781/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/425219 and its subdirectories -I: Current time: Fri Feb 7 09:48:09 -12 2025 -I: pbuilder-time-stamp: 1738964889 +I: removing directory /srv/workspace/pbuilder/4102781 and its subdirectories +I: Current time: Sun Jan 7 05:40:59 +14 2024 +I: pbuilder-time-stamp: 1704555659